2

Linux カーネルの git リポジトリがあります。標準の git clone で作りました。そのレポを「サーバー」と呼びましょう。サーバーのクローンを作成した「コンピューターa」もあります。私は長い間「コンピューター a」で開発し、その後「サーバー」にプッシュしましたが、常に別のブランチにいました。しばらくしてサーバーを更新したかったので、「コンピューターa」で次のコマンドを実行しました

git checkout master
git pull git://linus/kernel.git
git push origin master    #here origin is 'server'

したがって、私のサーバーのメイン ブランチには、メイン カーネル リポジトリからのものではない master の変更が含まれている可能性があります。ある場合、どうすればそれらを見つけることができますか? つまり、server/master の履歴全体が Linus の master ブランチと同一であることをどのように確認できますか?

ありがとう

4

1 に答える 1

1

Git を使用すると、2 つのブランチの履歴全体が同じであることを簡単に確認できます。

  • SHA1 コミット ID が一致する場合、履歴は同一です
  • そうでなければ、歴史は異なります

git cherryコマンドは、ハッシュが異なる場合、アップストリーム ブランチにないコミットを識別するのに役立ちます。

もう 1 つのヒントは、上流のブランチからプルしており、ローカル作業とのマージが行われていないgit pull --ff-onlyことを確認したい場合に使用することです。を使用した後、SHA1 コミット ID が一致するか、コマンド全体が失敗します。--ff-only

于 2012-08-02T20:56:54.233 に答える