0

ここに git ワークフローの問題があると考えています。私はいくつかのリモート ブランチをクリーンアップしていて、同僚を手伝っているときに、両方の git 参照が何らかの形で「同期していない」ことに気付きました。

たとえば、git bash を開いてコマンド「git branch -r」を入力すると、次のようなリストが返されます。

  • 原点/支店1
  • オリジン/ブランチ2
  • オリジン/ブランチ4

同僚に git bash プロンプトで同じことをさせると、次のようなリストが返されます。

  • 原点/支店1
  • オリジン/ブランチ3
  • オリジン/ブランチ7

私の同僚と私も、同じリモート ブランチ "branch1" を見ている場合があることに注意してください。これは、bash コマンドの実行に期待することです。私を混乱させているのは、「なぜ古いブランチや存在しないブランチがまだ返されているのか」という質問です。

両方のマシンを同期して、両方で「git branch -r」コマンドを実行すると、リモート リポジトリに関して同じ情報が返されるようにするにはどうすればよいですか。

皆さんありがとう!

4

2 に答える 2

2

ローカル マシンとリモートを明示的に同期する必要があります。両方に表示される origin/some_branch は、最新の git fetch に基づいています。Git はリモートのバージョンをローカルに保存し、origin/some_name という名前が付けられます。リモートを表示するポータルを実際に調べているのではなく、リモートを表示していて、ローカル マシンがそれを認識していることを理解することが重要です。ローカルで実行しているリモートのスナップショットを更新するには:

git fetch origin. # fetching the remote at origin

必要に応じて実行できます:

git fetch origin --prune

これにより、リモートで追跡されなくなったブランチのローカル origin/some_branch から削除されます。ただし、破壊的な操作を実行するときは、自分が何をしているのかを確認してください。

https://www.kernel.org/pub/software/scm/git/docs/git-fetch.html

于 2013-07-23T20:46:19.003 に答える