簡體   English   中英

Git提交壓縮(rebase -i):提交實際上如何工作?

[英]Git commit squashing (rebase -i): how do commits actually work?

我不太明白如何用git rebase -i壓縮提交。 我有一件事想知道:

如果我的rebase -i產生以下列表:

pick A Last commit

pick B Commit

pick C Some other commit

我應該壁球犯A和B或B和C嗎? 問題是,在這種情況下,git表示它將把D..A重新基於D(D是此之前的最后一個提交),而不是C..A重新基於C,這對我來說很有意義。 D根本沒有顯示,那么為什么這樣說呢?

事實是,git術語中的D..A意味着“從D到A,不包括D本身”。 如果您查看git-rev-list手冊頁,將會看到

表示法“ <commit1>..<commit2> ”可以用作“ ^<commit1> <commit2> ”的^<commit1> <commit2>

這意味着“列出所有包含<commit2>中但不包含在<commit1>中的<commit1> 。並且D本身所做的更改也包含在D commit中 。因此,它不包括在表示為D..A列表中。

這就是為什么說git rebase -i D影響D..HEAD是正確的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM