web-dev-qa-db-ja.com

Gitはいつリモートブランチのリストを更新しますか?

git branch --allを使用すると、すべての remote および local ブランチが表示されます。 gitはいつこのリストを更新しますか?プル/プッシュ? git bashを使ってリフレッシュするにはどうすればいいですか?

どうもありがとうございました!

311
BendEg

(local)gitが知っている全てのローカルブランチとリモートブランチを表示する

git branch -a

リモートブランチのローカルリストを更新するには

git remote update Origin --Prune
813
centralcmd

あなたがbashからgit branch --allを実行すれば、あなたが見るリモートブランチとローカルブランチのリストはあなたがコマンドを実行した時にあなたのローカルGitが「知っている」ことを反映するであろうと信じます。あなたのGitはあなたのシステムのローカルブランチに関して常に最新であるので、ローカルブランチのリストは常に正確です。ただし、リモートブランチの場合はそうである必要はありません。あなたのローカルGitはそれが最後のフェッチ(またはプル)で見たリモートブランチについて知っているだけです。そのため、git branch --allおよびnotを実行して、最後にフェッチまたはプルしたときに出現したafter新しいリモートブランチを参照することができます。

あなたのローカルのandリモートブランチリストが最新であることを確認するために、git fetchを実行するgit branch --allbeforeを実行することができます。

詳細については、git branch --allを実行したときに表示される "remote"ブランチは実際にはまったくリモートではなく、実際にはローカルです。たとえば、リモートにfeatureという名前のブランチがあり、これがローカルGitに少なくとも一度引き込まれたとします。 Origin/featureを実行すると、git branch --allがブランチとして表示されます。しかし、このブランチは実際にはlocal Gitブランチです。 git fetch Originを実行すると、このトラッキングブランチはリモートからの新しい変更で更新されます。これが、リモートブランチが新しくなったり、トラッキングブランチが古くなったりする可能性があるために、ローカルの状態が古くなる可能性がある理由です。

22
Tim Biegeleisen

OPは、デフォルトのリモートのすべてのブランチに対してではなく、すべてのリモートに対してクリーンアップを要求しませんでした。

だからgit fetch --Pruneが使われるべきものです。

git config remote.Origin.Prune trueを設定すると--Pruneは自動になります。その場合はgit fetchだけでローカルコピーからの古いリモートブランチもPruneします。 git fetchによる自動プルーニングまたはpull も参照してください。

これはもはやリモートブランチを追跡していないローカルブランチをきれいにしないことに注意してください。 https://stackoverflow.com/a/54484443/869951 を参照してください。

8
Oliver

git fetchを使用して、最近作成されたすべてのブランチを取得します。

1
vvv

Eclipseを使用していて、上流から新しいブランチを見たい場合。

Gitパースペクティブでgitリポジトリを右クリックしてから「Fetch from Upstream」を選択します。これは新しいリモートブランチを取得します。

0
Selman Gun