1晰奖,revert
Revert撤銷(xiāo)一個(gè)提交的同時(shí)會(huì)創(chuàng)建一個(gè)新的提交谈撒。這是一個(gè)安全的方法,因?yàn)樗粫?huì)重寫(xiě)提交歷史畅涂。比如港华,下面的命令會(huì)找出倒數(shù)第二個(gè)提交道川,然后創(chuàng)建一個(gè)新的提交來(lái)撤銷(xiāo)這些更改午衰,然后把這個(gè)提交加入項(xiàng)目中。
git checkout hotfix
git revert HEAD~2
2冒萄,reset
在提交層面上臊岸,reset將一個(gè)分支的末端指向另一個(gè)提交。這可以用來(lái)移除當(dāng)前分支的一些提交尊流。比如帅戒,下面這兩條命令讓hotfix分支向后回退了兩個(gè)提交。
git checkout hotfix
git reset HEAD~2
3崖技,checkout
checkout不過(guò)是將HEAD移到一個(gè)新的分支逻住,然后更新工作目錄。因?yàn)檫@可能會(huì)覆蓋本地的修改迎献,Git強(qiáng)制你提交或者緩存工作目錄中的所有更改瞎访,不然在checkout的時(shí)候這些更改都會(huì)丟失。和git reset不一樣的是吁恍,git checkout沒(méi)有移動(dòng)這些分支扒秸。
除了分支之外播演,你還可以傳入提交的引用來(lái)checkout到任意的提交。這和checkout到另一個(gè)分支是完全一樣的:把HEAD移動(dòng)到特定的提交伴奥。比如写烤,下面這個(gè)命令會(huì)checkout到當(dāng)前提交的祖父提交。