git使用總結(jié)

git和其他所有的版本控制系統(tǒng)一樣,都只能追蹤文本的改變

配置用戶名和email

git config --global user.name "curious_cat"
git config --global user.email "xx@qq.com"

global參數(shù)設(shè)置了電腦上的所有的git倉庫的默認(rèn)的name和email
git config --global user.name和git config --global user.email能查看當(dāng)前的所有g(shù)it倉庫默認(rèn)的用戶名和email

初始化git倉庫

git init     當(dāng)前目錄成為了git可以管理的倉庫(版本庫),并且當(dāng)前目錄自動(dòng)生成了.git目錄,.git目錄是Git來跟蹤管理版本庫的。

.git目錄中會自動(dòng)創(chuàng)建一個(gè)叫master的分支
*HEAD指針總是指向當(dāng)前分支 *

將文件添加到git倉庫

git add test.txt  把工作目錄中文件添加到.git目錄的暫存區(qū),可同時(shí)添加多個(gè)文件

test.txt等文件必須放在工作目錄,才可以添加到git倉庫

將文件提交到git倉庫

git commit -m "修改了test.txt文件"  把文件提交到.git目錄的中的當(dāng)前分支(HEAD指針指向的分支)

每次修改文件后必須先執(zhí)行g(shù)it add 再執(zhí)行g(shù)it commit -m,因?yàn)間it管理的是修改,而非文件

查看git倉庫狀態(tài)

git status              查看git倉庫的狀態(tài)

On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: test.txt
no changes added to commit (use "git add" and/or "git commit -a")
提示修改了文件test.txt,需要使用git add test.txt 添加到暫存區(qū),或者使用git checkout -- test.txt撤銷修改。

On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: test.txt
提示:test.txt 的修改需要使用git commit -m "修改了XX" 提交到當(dāng)前分支上

查看文件是如何修改的

git diff test.txt      

*如果git status提示有文件被修改過(未git add),用git diff就能查看修改的內(nèi)容了 *

刪除文件

rm test.txt  直接用rm命令刪除

On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: test.txt
no changes added to commit (use "git add" and/or "git commit -a")
提示使用git checkout -- text.txt將撤銷對文件的刪除,使用git rm text.txt 然后使用git commit確實(shí)要從版本庫中刪除該文件

 git rm text.txt  配合git commit -m "xx"   從版本庫刪除該文件

查看git倉庫日志和版本回退

git log --pretty=oneline    查看提交日志,以便確定要回退到哪個(gè)版本    
git reflog   查看命令日志,以便確定要回到未來的哪個(gè)版本
git reset --hard HEAD^    回退到上一個(gè)版本,HEAD表示當(dāng)前版本,HEAD^表示上一個(gè)版本
git reset --hard HEAD^^  回退到上上一個(gè)版本,HEAD^^表示上上一個(gè)版本
git reset --hard 3628164   回退到指定的版本,需配合git reflog使用

撤銷修改

git checkout -- readme.txt    修改文件后,使用git status會提示使用此命令將撤銷對工作目錄中readme.txt的修改
git reset HEAD readme.txt    修改文件后并使用了git add,使用git status會提醒使用此命令會把暫存區(qū)的修改撤銷,但工作區(qū)中仍然是修改后的內(nèi)容,相當(dāng)于回到了未git add狀態(tài)。

如果修改文件后使用了git add 和git commit 只能使用版本回退功能了

創(chuàng)建與合并分支

1. git checkout -b dev  -b參數(shù)表示創(chuàng)建dev分支并切換到分支,可以進(jìn)行分支開發(fā)了,上面命令相當(dāng)于:   git branch dev 創(chuàng)建分支dev ; git checkout dev 切換到分支dev; 
2. git checkout master  dev分支開發(fā)完成后切換到master分支
3. git merge dev  然后合并dev分支到當(dāng)前分支上
4. git branch -d dev 合并完成后就可以刪除dev分支了
git branch 命令會列出所有分支,當(dāng)前分支前面會用(*)號標(biāo)識

git鼓勵(lì)在分支上完成任務(wù),合并后再刪除分支,這和直接在master分支上工作效果一樣,但過程更安全

解決分支合并沖突

1. 打開沖突的文件修改后使用git add 和git commit -m命令提交到當(dāng)前分支
2. git merge dev 然后合并dev分支到當(dāng)前分支上
3. git branch -d dev 合并完成后就可以刪除dev分支了
git log --graph 可以查看合并圖

Bug分支

  • git stash 保存當(dāng)前工作現(xiàn)場,等以后恢復(fù)現(xiàn)場后繼續(xù)工作
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容