什么是Git?
- Git是一款源代碼管理工具(版本控制工具)
- 我們寫的代碼需要使用Git進(jìn)行管理锦聊。
分布式,集中式版本管理工具
- git屬于分布式
- svn集中式
git安裝
git初始化一個(gè)倉庫
- 創(chuàng)建一個(gè).git隱藏目錄
- 命令:
git init
;- 想在哪個(gè)目錄創(chuàng)建.git目錄,就是哪個(gè)目錄打開工具然后寫命令.
- 一般是在項(xiàng)目的根目錄執(zhí)行這個(gè)命令.
自報(bào)家門
- 配置用戶名 :
git config user.name "testName"
- 配置郵箱 :
git config user.email "test@sina.com"
- 查看配置信息:
git config --list
把代碼提交到倉庫中
-
1.先把代碼添加到暫存區(qū)(就相當(dāng)于放到倉庫門口)
- 命令:
git add 文件路徑
- 示例:
git add ./reademe.md
- 可以使用
git add .
這個(gè)命令,批量把當(dāng)前目錄下所有修改過的文件添加到暫存區(qū)谍肤。
- 命令:
-
2.把暫存區(qū)的文件提交倉庫里
- 命令:
git commit -m "注釋"
- 示例:
git commit -m "我們添加了一個(gè)新的功能"
- -m 表示指定一個(gè)字符串,作為提交的說明(相當(dāng)于注釋);
- 命令:
-
合并add 與commit 命令
-
git commit -a -m "這是使用合并添加與提交的操作"
; - 這里-a參數(shù)表明把所有修改后的文件一起添加到暫存區(qū).(只是對(duì)修改后的文件有效哗伯,對(duì)于新添加的文件沒有作用)
-
查看工作區(qū)狀態(tài)
- 命令:
git status
添加忽略文件
- 在項(xiàng)目中有一些文件是不需要提交的,我們需要把它忽略掉
- 需要在.git文件夾所在目錄新建一個(gè)名為.gitignore的文件
然后在這個(gè)文件中寫上需要被忽略的文件的路徑。
示例: /css/a.css
: /css/*.css
: /a.html
對(duì)比文件差異
- 命令:
git diff
- 用來比較暫存區(qū)文件內(nèi)容與工作區(qū)文件內(nèi)容的區(qū)別
- 如果暫存區(qū)沒有文件篷角,就會(huì)將工作與代碼與最近一次提交對(duì)比
- 命令:
git diff --cached
比較暫存區(qū)的文件和倉庫中文件的區(qū)別 - 對(duì)比之前某兩次提交的文件的差異
- 命令:
git diff [版本號(hào)1] [版本號(hào)2] [想比較的文件路徑]
- 命令:
查看日志
- 命令:
git log
,可以查看每一次提交的日志 - 命令:
git log --oneline
表示使用簡潔的形式輸出提交日志
版本回退
-
命令:
git reset --hard Head~1
- 這是將代碼回退到上上一次提交時(shí)的狀態(tài)
-
命令:
git reset --hard Head~2
- 回退到上上上次
-
命令:
git reset --hard Head~0
- 回退到上次提交時(shí)的狀態(tài),~0可以省略
-
命令:
git reset --hard 版本號(hào)
- 通過每次提交時(shí)生成的版本號(hào)來回退版本
通過
git reflog
命令可以查看之前所有版本切換的操作記錄焊刹,可以通過這個(gè)命令得到的版本號(hào)回退到指定的版本。
創(chuàng)建分支
- 命令:
git branch [分支名]
- 創(chuàng)建一個(gè)新分支
- 命令:
git branch
- 查看當(dāng)前所有的分支
切換分支
- 命令:
git checkout [分支名]
- 切換分支后可以在切換后的分支中進(jìn)行正常的操作
合并分支
- 命令:
git merge [分支名]
- git會(huì)將指定的分支合并到當(dāng)前分支.
刪除分支
- 命令:
git branch -d [分支名]
- 刪除指定分支恳蹲,-d參數(shù)表示要執(zhí)行刪除操作
git提交中的沖突
- 如果git不能自動(dòng)合并分支虐块,就會(huì)有沖突,我們需要手動(dòng)解決沖突嘉蕾,然后再次提交
github
github與git
- git 版本管理工具
- github 就是一個(gè)網(wǎng)站贺奠,只是這個(gè)網(wǎng)站提供git服務(wù)器的功能
上傳代碼到git服務(wù)器(push)
-
命令:
git push [遠(yuǎn)程服務(wù)器地址] [遠(yuǎn)程服務(wù)器的分支]
- 示例:
git push https://github.com/huoqishi/test002.git master
- 示例:
-
上傳時(shí)可以使用一些簡化的命令
- 將遠(yuǎn)程服務(wù)器地址寫成變量的形式
git remote add [變量名] [遠(yuǎn)程服務(wù)器地址]
- 示例:
git remote add origin https://github.com/huoqishi/test002.git
- 這樣之后就可以直接使用origin來代替git push 后面寫的地址了
git push origin master
- 將遠(yuǎn)程服務(wù)器地址寫成變量的形式
-
還可以盡一步簡化
- 在push時(shí)加上-u參數(shù),就會(huì)默認(rèn)建立本地當(dāng)前分支與遠(yuǎn)程指定分支的關(guān)聯(lián),下一次push時(shí)就不需要輸入分支名了
git push origin
;
- 在push時(shí)加上-u參數(shù),就會(huì)默認(rèn)建立本地當(dāng)前分支與遠(yuǎn)程指定分支的關(guān)聯(lián),下一次push時(shí)就不需要輸入分支名了
git使用ssh方式上傳代碼與github
- git生成公鑰和私鑰
- 命令:
ssh-keygen -t rsa
生成的公鑰與私鑰文件會(huì)在當(dāng)用戶目錄的.ssh目錄下. - 找到生成的ssh鑰匙文件的地址:C盤/用戶/用戶名/.ssh/id_rsa.pub 找到公鑰
- 在github右上角 --> setting --> ssh設(shè)置選項(xiàng)
- 把我們的公鑰拷貝到github當(dāng)中
- 以后push代碼倉庫的時(shí)候错忱,使用ssh協(xié)議儡率,也就是去使用git開頭的那個(gè)鏈接
- 命令:
拉取github服務(wù)器上的代碼及多人協(xié)作沖突處理
- 從服務(wù)器拉取代碼的方式
- 方式一:'git clone git url'
- 方式二:'git init'
+ 'git pull url'
- git pull和git clone這二種拉取方式的區(qū)別:
- 用git pull的話默認(rèn)沒有設(shè)置origin這個(gè)變量,必須自己手動(dòng)設(shè)置(git remote add .....),而用了git clone則不需要了以清,默認(rèn)origin這個(gè)變量就存在了
把代碼push到服務(wù)器時(shí)需要先pull一下
- 在pull之后如果遠(yuǎn)程的代碼與本地的代碼有沖突儿普,git會(huì)先自動(dòng)合并沖突,如果不能自動(dòng)合并掷倔,就必需我們手動(dòng)去處理沖突眉孩。
- 解決拒絕提交代碼
- 執(zhí)行g(shù)it pull origin master
- 手動(dòng)更改代碼,解決沖突
- 執(zhí)行:'git add'
- 執(zhí)行:'git commit
- 執(zhí)行:'git pull origin master'
- 執(zhí)行:'git push origin master'
- 如何避免盡量不會(huì)出現(xiàn)沖突勒葱?
- 在每次push之前執(zhí)行一次git pull
- git pull的作用:
- 更新本地倉庫至最新改動(dòng)浪汪,相當(dāng)于先從遠(yuǎn)程服務(wù)器獲取最新代碼,接著進(jìn)行自動(dòng)合并(merge)凛虽,如果有沖突會(huì)提示你沖突死遭,讓你在本地手動(dòng)解決掉沖突之后,再推送到服務(wù)器上面
多人共同使用同一個(gè)github服務(wù)器倉庫
- 第一步涩维、建立好一個(gè)github上面的倉庫
- 第二步殃姓、點(diǎn)擊setting
- 第三步袁波、點(diǎn)擊add collaborator,在里面找到你的小伙伴的用戶名
- 第四步蜗侈、生成一個(gè)邀請鏈接
- 第五步篷牌、把這個(gè)鏈接發(fā)給你的小伙伴,他同意之后就可以把自己寫的代碼提交到這個(gè)倉庫了
gh-pages分支-搭建博客.
- 需要把自已博客的網(wǎng)頁代碼上傳到github上的gh-pages分支
- 然后就直接訪問了
- 訪問的url形式: [github用戶名].github.io/[倉庫的名字]/[具體的頁面]
使用hexo + github創(chuàng)建博客
- 第一步踏幻、執(zhí)行npm install hexo-cli -g 安裝hexo
- 第二步枷颊、找到你想寫博客的文件夾,執(zhí)行hexo init blog
- 第三步该面、在生成的文件blog中執(zhí)行hexo server夭苗,訪問http://localhost:4000/
- 第四步、我們只需要關(guān)心source里面的_posts里面的markdown文件隔缀,這就是寫博客的文件
- 生成新的博客文件hexo new 博客標(biāo)題
- 第五步题造、當(dāng)我們的博客里的文章寫好的時(shí)候,我們執(zhí)行hexo generate 生成靜態(tài)的html文件
- 第六步猾瘸、我們把public里面的發(fā)布到github上面即可
- 在創(chuàng)建github倉庫是取名一定要去[github用戶名].github.io 例子:saber-tgb.github.io
- 用git發(fā)送到githoub是一定要發(fā)送到master分支
- 不用更改生成的博客html文件的css界赔,js的路徑 傳上去后路徑就會(huì)正確