在歷史的某個時刻,我有一個主分支,看起來像這樣。
A <-- B <-- C <-- D (main)
此時我使用互動式 rebase將C壓入D并提交C'。在提交C'時,我創建了v1分支,當我在主分支上時,我進行了另一個提交(E)。所以存盤庫現在看起來像這樣:
A <-- B <-- C' <-- E (main)
(v1)
我再次將C'壓入E并得到C"。
A <-- B <-- C'(v1)
?__ C"(main)
之后我又提交了F和 Squashed C"并得到了C"'。所以目前我的存盤庫看起來像這樣:
A <-- B <-- C'(v1)
?__ C"'(main)
現在我想在C'之上重新提交C" '但不必合并它們與共同父B的差異。換句話說,我想將C"'移動到C '之上,就好像我直接進行了所有更改一樣到C'并在提交這些更改后我得到了C"'
uj5u.com熱心網友回復:
聽起來你想:
git checkout main # check out branch main (commit C''')
git reset --soft v1 # move HEAD to v1 (commit C'), but keep all files and keep index
git commit -C "C'''" # commit index with commit message of commit C''' (previous tip of "main")
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/521443.html
上一篇:Git最佳實踐
