git branch --all
を使用すると、すべての remote および local ブランチが表示されます。 gitはいつこのリストを更新しますか?プル/プッシュ? git bash
を使ってリフレッシュするにはどうすればいいですか?
どうもありがとうございました!
(local)gitが知っている全てのローカルブランチとリモートブランチを表示する
git branch -a
リモートブランチのローカルリストを更新するには
git remote update Origin --Prune
あなたがbashからgit branch --all
を実行すれば、あなたが見るリモートブランチとローカルブランチのリストはあなたがコマンドを実行した時にあなたのローカルGitが「知っている」ことを反映するであろうと信じます。あなたのGitはあなたのシステムのローカルブランチに関して常に最新であるので、ローカルブランチのリストは常に正確です。ただし、リモートブランチの場合はそうである必要はありません。あなたのローカルGitはそれが最後のフェッチ(またはプル)で見たリモートブランチについて知っているだけです。そのため、git branch --all
およびnotを実行して、最後にフェッチまたはプルしたときに出現したafter新しいリモートブランチを参照することができます。
あなたのローカルのandリモートブランチリストが最新であることを確認するために、git fetch
を実行するgit branch --all
beforeを実行することができます。
詳細については、git branch --all
を実行したときに表示される "remote"ブランチは実際にはまったくリモートではなく、実際にはローカルです。たとえば、リモートにfeature
という名前のブランチがあり、これがローカルGitに少なくとも一度引き込まれたとします。 Origin/feature
を実行すると、git branch --all
がブランチとして表示されます。しかし、このブランチは実際にはlocal Gitブランチです。 git fetch Origin
を実行すると、このトラッキングブランチはリモートからの新しい変更で更新されます。これが、リモートブランチが新しくなったり、トラッキングブランチが古くなったりする可能性があるために、ローカルの状態が古くなる可能性がある理由です。
OPは、デフォルトのリモートのすべてのブランチに対してではなく、すべてのリモートに対してクリーンアップを要求しませんでした。
だからgit fetch --Prune
が使われるべきものです。
git config remote.Origin.Prune true
を設定すると--Prune
は自動になります。その場合はgit fetch
だけでローカルコピーからの古いリモートブランチもPruneします。 git fetchによる自動プルーニングまたはpull も参照してください。
これはもはやリモートブランチを追跡していないローカルブランチをきれいにしないことに注意してください。 https://stackoverflow.com/a/54484443/869951 を参照してください。
git fetch
を使用して、最近作成されたすべてのブランチを取得します。
Eclipseを使用していて、上流から新しいブランチを見たい場合。
Gitパースペクティブでgitリポジトリを右クリックしてから「Fetch from Upstream」を選択します。これは新しいリモートブランチを取得します。