2

コミットが git rebase -i でどのように押しつぶされるのかよくわかりません。私が疑問に思ったことが1つあります。

私の rebase -i がこのリストを生成する場合:

pick A Last commit

pick B Commit

pick C Some other commit

コミット A と B または B と C をスカッシュする必要がありますか? 問題は、この場合、C..A を C にリベースするのではなく、D..A を D にリベースする (D はこの前の最後のコミット) という git です。D はまったく表示されないのに、なぜそのように表示されるのでしょうか。

4

1 に答える 1

5

問題はD..A、git 用語では「D 自体を含まない D から A へ」を意味することです。git-rev-listマニュアルページを見ると、

記法 " " は " "<commit1>..<commit2>の短縮形として使用できます^<commit1> <commit2>

これは、「 に含まれているが には含ま<commit2>ていないすべてのコミットをリストすることを意味し<commit1>ます。また、それ自体で行われた変更はcommitDDに含まれます。したがって、 として示されるリストには含まれませんD..A

git rebase -i Dということで、に影響を与えると言うのが正しいD..HEADです。

于 2010-07-27T09:14:06.057 に答える