リストした手順は機能しますが、より多くのオプションを提供する長い方法があります。
git checkout dmgr2 # gets you "on branch dmgr2"
git fetch origin # gets you up to date with origin
git merge origin/master
fetch
コマンドは、前の任意の時点で行うことができますmerge
ので、つまり、あなたは、フェッチとチェックアウトの順序を入れ替えることができますfetch
だけでリモート(という名前にオーバー行くorigin
)とそれに言う:「あなたは私にはないことを持っているギミのすべてのもの"、つまり、すべてのブランチですべてのコミット。それらはリポジトリにコピーされますが、リモートでorigin/branch
名前が付けられたブランチの名前が付けられますbranch
。
この時点git log
でgitk
、任意のビューア(、、など)を使用して、自分が「持っていないもの」を確認したり、その逆を行ったりできます。これはウォームファジーフィーリングにのみ役立つ場合があります(「はい、そうです、それが実際に私が望んでいることです」)。
最後に、merge
コマンドは指定されたコミットを受け取ります。これはと名付けることができorigin/master
、そのコミットとその祖先を、を実行するときに現在のブランチに持ち込むために必要なことをすべて実行しmerge
ます。挿入し--no-ff
たり--ff-only
、早送りを禁止したり、結果が早送りの場合のみマージしたりできます。
シーケンスを使用する場合:
git checkout dmgr2
git pull origin master
このpull
コマンドはgitに実行を指示しgit fetch
、次にと道徳的に同等のものを指示しますgit merge origin/master
。したがって、これは2つの手順を手作業で行うのとほとんど同じですが、微妙な違いがあり、あまり気にしていない可能性があります。(特に、fetch
step runはpull
bringover only origin/master
であり、リポジトリのrefを更新しません。1新しいコミットは、特別なFETCH_HEAD
参照によってのみ参照されます。)
より明示的なgit fetch origin
(次にオプションで見回す)git merge origin/master
シーケンスを使用する場合は、独自のローカルをmaster
リモートで最新にしfetch
て、ネットワーク全体で1つだけ実行することもできます。
git fetch origin
git checkout master
git merge --ff-only origin/master
git checkout dmgr2
git merge --no-ff origin/master
例えば。
1この2番目の部分は変更されました(私は「修正済み」と言います)git 1.8.4で、「リモートブランチ」参照を便宜的に更新します。(リリースノートにあるように、更新をスキップするという意図的な設計上の決定でしたが、より多くの人がgitによる更新を好むことがわかりました。古いリモートブランチのSHA-1が必要な場合は、デフォルトで次の場所に保存されます。 、したがってreflogから回復可能です。これにより、上流のリベースを見つけるための新しいgit 1.9 / 2.0機能も有効になります。)