すべてのリモートブランチを自分のリポジトリにプルするにはどうすればよいですか?
私が入力した場合:
git branch -a
ブランチの長いリストを取得しますが、次のように入力すると:
git branch
そのうち2つしか表示されません。
[〜#〜] all [〜#〜]ブランチをローカルリストにプルするにはどうすればよいですか?
私ができることを知っています:
git checkout --track Origin/branch-name
しかし、それは一度に1つのブランチのみをプルおよびチェックアウトします。実行するという面倒な作業なしに、すべてを一度に実行する方法 git checkout --track Origin/branch-name 何度も何度も?
追伸私は次のコマンドを試しましたが、どれもリモートブランチが表示されませんでした git branch リスト:
git fetch --all
git remote update
git pull --all
pstream ブランチ、および それらを追跡する をすべて表示するために通常使用するコマンドは、「 すべてのリモートgitブランチをローカルブランチとして追跡する 」で詳しく説明されています。
remote=Origin ; for brname in `git branch -r | grep $remote | grep -v master | grep -v HEAD | awk '{gsub(/[^\/]+\//,"",$1); print $1}'`; do git branch --set-upstream-to $remote/$brname $brname ; done
または:
remote=Origin ; for brname in `git branch -r | grep $remote | grep -v master | grep -v HEAD | awk '{gsub(/[^\/]+\//,"",$1); print $1}'`; do git branch --track $brname $remote/$brname ; done
より読みやすくするために:
remote=Origin ; // put here the name of the remote you want
for brname in `
git branch -r | grep $remote | grep -v master | grep -v HEAD
| awk '{gsub(/[^\/]+\//,"",$1); print $1}'
`; do
git branch --set-upstream-to $remote/$brname $brname;
# or
git branch --track $brname $remote/$brname ;
done
2つ目は、リモートブランチを追跡する新しいローカルブランチを作成するためのものです。
私はいつもこれを使用し、それは完璧に動作します
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#Origin/}" "$remote"; done
git fetch --all
git pull --all
あなたは次のようなものを試してください:-
$ git fetch --all
$ for branch in `git branch -r | cut -d '/' -f2-` ; do git checkout $branch && git pull Origin $branch ; done