git pull --help
リモート リポジトリからの変更を現在のブランチに組み込みます。
コードをオフラインで表示するために git リポジトリをプルし、さまざまなブランチの更新されたコードを取得したいと考えています。各ブランチを手動でプルすることなく、すべてのブランチのコードを簡単にプルするにはどうすればよいですか?
--all -- すべてのリモートを取得します。
-- すべて役に立ちませんでした。
git pull --help
リモート リポジトリからの変更を現在のブランチに組み込みます。
コードをオフラインで表示するために git リポジトリをプルし、さまざまなブランチの更新されたコードを取得したいと考えています。各ブランチを手動でプルすることなく、すべてのブランチのコードを簡単にプルするにはどうすればよいですか?
--all -- すべてのリモートを取得します。
-- すべて役に立ちませんでした。
ローカル リポジトリが読み取り専用で使用され、どのファイルも変更されていない場合は、次のスクリプトでうまくいきます。
for i in $(git branch | sed 's/^.//'); do git checkout $i; git pull; done
同じものに相当する git コマンドはないようです。
Praveen Sripatiの回答と同様ですが、シェル関数として、開始したブランチに戻ります。
これを ~/.bash_aliases ファイルに入れるだけです:
function pull-all () {
START=$(git branch | grep '\*' | set 's/^.//');
for i in $(git branch | sed 's/^.//'); do
git checkout $i;
git pull || break;
done;
git checkout $START;
};
|| で 衝突などがあっても物事を台無しにすることなく、満足のいく仕事をします。
pull
リモート ブランチを現在のローカル ブランチにマージするため、すべてのリモート ブランチをプルすることはおそらく望ましくありません。
@cellofellow に触発されて、これを.profile
Mac OS Xに追加しました。
function git-pull-all() {
START=$(git symbolic-ref --short -q HEAD);
for branch in $(git branch | sed 's/^.//'); do
git checkout $branch;
git pull ${1:-origin} $branch || break;
done;
git checkout $START;
};
function git-push-all() {
git push --all ${1:-origin};
};
主な違いは次のとおりです。
git branch | grep '\*' | set 's/^.//'
の代わりに現在のブランチを取得していgit branch | grep '\*' | set 's/^.//'
ます。
リモートをパラメーターとして指定できますgit-pull-all origin
。パラメータを省略した場合、デフォルトで origin になります。
複数のブランチをサーバーにプッシュバックするための同様のショートカットも追加されました。
各ブランチを個別にマージする必要があります。複数のブランチをマージし、そのうちの 1 つ以上にマージの競合があった場合、どうすれば同時に解決できるでしょうか?