git使用經(jīng)驗(yàn)

git 查看版本樹

git log --oneline --graph --decorate --all

git reset revert 區(qū)別

https://www.css3.io/hui-gun.html

  • git reset –-soft:回退到某個版本. 將這中間回退的commit都并入暫存區(qū), 暫存區(qū)內(nèi)本來有的改動不會丟, 不會動文件區(qū).
  • git reset -–hard:徹底回退到某個版本,本地文件區(qū)變?yōu)樵摪姹? 丟棄撤銷的commit和暫存區(qū)中所包含的更改;

reset時只應(yīng)修改本地的提交鏈, 不應(yīng)影響公共提交鏈. (否則一方面造成與遠(yuǎn)端的提交樹沖突, 另一方面可能會沖掉別人的工作成果)

git revert 用法
git revert只能抵消上一個提交, 相當(dāng)于做出了一個新提交, 該提交的改動是上一個提交的反操作.

另外可參考:

當(dāng)撤回到合并分支之前時, 需要決定退到分之前的哪一條路, 建議執(zhí)行git help revert并查看-m參數(shù). 一般不會有人撤回合并操作.

git rebase

rebase合并遠(yuǎn)端分支

當(dāng)你在master進(jìn)行一次commit后, git push發(fā)現(xiàn)遠(yuǎn)端有了別人的commit, 你可以做如下之一:

  • git pull origin xxx --rebase用來更新遠(yuǎn)端代碼
  • git rebase master

撤銷已push的merge, 并rebase

假如當(dāng)下有這樣的分支情況:


由圖可見,該merge已經(jīng)推送到origin. 現(xiàn)在我們希望將merge撤銷, 將并兩個分支合并成一個分支.

然后遵循https://backlog.com/git-tutorial/cn/stepup/stepup2_8.html中的教程,可見

執(zhí)行git rebase --continue


這時候git checkout master后, 再執(zhí)行如下:

最后進(jìn)行清理:

git branch -D b2
git push origin master -f

刪除refs/stash

https://stackoverflow.com/questions/5737002/how-to-delete-a-stash-created-with-git-stash-create

git stash list列出所有stash分支,
然后git stash drop stash{no}刪除指定的stash分支, 其中no是分支編號


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容