git重寫歷史記錄

c3tc3tc3t發表於2015-11-07

1 修改上一次歷史提交,替換掉上次的提交
git commit --amend

2 git rebase 將不同分支路徑合併到同一分支路徑上
eg:將master分支上的 conflic rebase合併到 head分支上
* ada88de(HEAD, test_rebase)Initial commit on test_rebase
| *2a4a11f (master) coflict rebase
| /
|/
* ac75384 This is a amend commit


$ git rebase master

1 如果發生衝突 可以執行git rebase --abort撤銷
2 解決衝突 vim編輯衝突檔案 ,
3 git rebase --continue,
4 git add 衝突檔案,
5 git rebase --continue

結果:
* ada88de(HEAD, test_rebase)Initial commit on test_rebase
*2a4a11f (master) coflict rebase
|
|
* ac75384 This is a amend commit

 

如果像回到git rebase操作執行之前

git reflog檢視所有head記錄

使用git reset -- hard HEAD@{N} (N代表數字 )回到操作前的某一次提交

git reset --soft commit 只將版本庫中的head指向commit
git reset --mixed commit 將版本庫中的 head指向commit ,使用commit分支檔案替換暫存去

git reset --hard commit 版本庫指向commit ,替換了暫存去和工作區

相關文章