最好的Git的教程個人認為是:Git教程-廖雪峰,里面的內(nèi)容很豐富店量,干貨滿滿芜果。與Git教程的全面性不同,本文旨在整理一下常用的Git操作或基礎(chǔ)知識點融师。
1右钾、電腦里能看到的git管理的文件夾,就是一個工作區(qū)
2旱爆、git add命令實際上就是把要提交的所有修改放到暫存區(qū)(Stage)舀射,然后,執(zhí)行g(shù)it commit就可以一次性把暫存區(qū)的所有修改提交到分支
3怀伦、為什么Git比其他版本控制系統(tǒng)設(shè)計得優(yōu)秀脆烟,因為Git跟蹤并管理的是修改,而非文件?
4房待、
git checkout -- readme.txt
丟棄對readme對修改 git checkout其實是用版本庫里的版本替換工作區(qū)的版本邢羔,無論工作區(qū)是修改還是刪除,都可以“一鍵還原”(修改還沒有g(shù)it add)5桑孩、
git reset HEAD readme.txt
git reset命令既可以回退版本拜鹤,也可以把暫存區(qū)的修改回退到工作區(qū), 再用git checkout 放棄對工作區(qū)對修改6、
git push -u origin maste
r第一次提交流椒,git push origin maste
r推送最新修改7敏簿、git branch命令會列出所有分支,當前分支前面會標一個*號
8宣虾、
git checkout -b dev
創(chuàng)建新分支惯裕,并切換 =git branch <name> + git checkout <name>
9、master與feature都各自有新的提交安岂,就無法執(zhí)行簡單都Fast-forward了轻猖,需要手動合并
10、git log --graph 查看分支合并圖
11域那、stash工作流程為:
git stash + git checkout -b issue-101 + git add readme.txt + git commit -m "fix bug 101" + git checkout master + git merge --no-ff -m "merged bug fix 101" issue-101 + git stash list + git stash apply (git stash drop/pop)
12咙边、用--no-ff強制禁用Fast forward模式猜煮,Git就會在merge時生成一個新的commit,這樣败许,從分支歷史上就可以看出分支信息王带。【加上--no-ff參數(shù)就可以用普通模式合并市殷,合并后的歷史有分支愕撰,能看出來曾經(jīng)做過合并,而fast forward合并就看不出來曾經(jīng)做過合并醋寝「阏酰】
13、在不合并的情況下音羞,強行刪除某分支:
git branch -D feature-vulcan
14囱桨、創(chuàng)建關(guān)聯(lián)分支:
git checkout -b dev origin/dev
15、忽略某些文件時嗅绰,需要編寫.gitignore舍肠;.gitignore文件本身要放到版本庫里,并且可以對.gitignore做版本管理?