2011-11-24 10 views
5

をコミット私は次のように見えるのgitツリーを持っています。これは、いくつかの論理的な重複を私に残します。そのブランチは次に削除します。たとえば、ssl_tests以下の変更 "変更:名前の変更..."もdevにあります。Gitはリベース選択

これはおそらく、私の桜ピックの部分についての理解の欠如ですが、それらのコミットは異なるハッシュを持つので、異なるコミットが正しいでしょうか?論理的には同じですが。

しかしdevにssl_testsをリベースすると、gitはそれらのチェリーピックされたコミットが上流にあることを把握し、ssl_testsからの "New Feature:Unit tests ..."コミットだけをリベースします。

通常どおり、gitを使用すると、これは素晴らしいことです!これはまさに私が欲しいものです!しかし、私の質問は、別のハッシュを持っている場合、他のコミットをrebaseする必要はないということをgitがどのように把握しているのでしょうか?

ありがとうございます! Stephen

+0

Gitでマージをマージすることについての良い記事は、[どうやってGitをSVNよりもマージするのか?](http://stackoverflow.com/q/2471606/11343) – CharlesB

答えて

5

GitはここでSHA1以上のものを探しています。実際にコミットの内容を検討しています。コミットを適用し、コミットを適用しないことに起因するツリーが同じであることがわかります。つまり、新しいベースに適用されると、コミットは空になります。したがって、rebaseは、それらのコミットを含めて気にする必要がないことを知るほどスマートです。

関連する問題