比方說,我有以下的歷史在我混帳回購協議:混帳 - 得到一些非隨之而來的結果改變承諾
C (master)
x (origin/master)
B
x
A
x
A,B和C是承諾,我很感興趣,而X是其他一些更改(可能會超過1次提交)。我想知道提交A,B和C執行的結果更改是否忽略了其他提交之間所做的任何其他更改。
有沒有可能這樣做?
比方說,我有以下的歷史在我混帳回購協議:混帳 - 得到一些非隨之而來的結果改變承諾
C (master)
x (origin/master)
B
x
A
x
A,B和C是承諾,我很感興趣,而X是其他一些更改(可能會超過1次提交)。我想知道提交A,B和C執行的結果更改是否忽略了其他提交之間所做的任何其他更改。
有沒有可能這樣做?
您可以重訂這些變化來創建它們的一個承諾:
git rebase -i A^ // QWE^ means parent of QWE
在交互reabse你可以改變提交的順序爲您的C,B,A是在上面。您也可以將B和A設置爲「壓扁」或「修復」,這樣這些提交將作爲一個提交顯示。
,如果你想看到犯+ B + C,你可以簡單地進行更改之後:
git log -p -1 A+B+C // -p means show diff, -1 means show just 1 commit
的問題是,重訂期間,您可能需要做一些合併。
看來您想對A-B-C
中的更改進行代碼審查。
我建議首先結賬C
處於分離HEAD狀態,並進行rebase互動。
git checkout --detach C
git rebase -i A^
底墊交互式編輯器會告訴你這樣的事情
pick A
pick x
pick B
pick x
pick C
取出x
線和壁球等提交。例如。
pick A
squash B
squash C
底墊完成你的頭點提交後僅包含的A-B-C
的變化。
可以使用
git show HEAD
看到的變化,但請記住,你可能會得到,你必須解決衝突。這可能發生在例如提交C
取決於您在刪除的x
提交之一中引入的更改。對於提交'B'也是如此。