web-dev-qa-db-ja.com

別のリモートのGitマージブランチ

最近、LinusTorvaldsやGitsterから次のようなコミットがたくさん見られます。

Merge branch 'maint' of git://github.com/git-l10n/git-po into maint …
* 'maint' of git://github.com/git-l10n/git-po:
  l10n: de.po: fix a few minor typos

または:

Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upst… …
…ream-linus

Pull MIPS update from Ralf Baechle:
...
* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (22 commits)
  MIPS: SNI: Switch RM400 serial to SCCNXP driver
...

どうすればよいかわかりませんが、マージに使用するgit remotegit checkoutgit mergeについては知っています。フォーク(または「プルリクエスト」)が、そのようなメッセージを生成しないのはなぜですか?そして、誰かがそれをどのように行うでしょうか(例を提供してください)?

追伸:私はLinus Torvaldsのコミットなどのファンで、彼のマージの説明がどれほど詳細に見えるかなどです; P

追伸:これは私がものをマージするために使用した方法です:

git remote add anotherremoot
git checkout -b anotherbranch
git pull remoteshortcut
...do tests...
git checkout master
git merge anotherbranch
git Push

私が学んだ上記の例: http://viget.com/extend/i-have-a-pull-request-on-github-now-what

25
user1551592

git pull を使用して、リモートブランチをmasterにプルします。

git remote add something git://Host.example.com/path/to/repo.git
git checkout master
git pull something master

または、リモコンを追加せずに実行します。

git pull git://Host.example.com/path/to/repo.git

git pullはリモートブランチをフェッチし、それをローカルブランチにマージします。可能であれば、早送りマージを実行します。つまり、マージコミットを生成せずに、現在のマスターを最新のコミットに更新します。ただし、両側に変更がある場合は、LinusとJunioが行っているように、リモートURLを含めてマージが行われます。

早送りできたとしても、マージコミットを確実に取得したい場合は、git pull -no-ffを実行してください。 pullがマージコミットを作成しないようにしたい場合(両側に変更があると失敗するため)、git pull --ff-onlyを実行します。

Linusが提供する完全なログなど、より詳細なメッセージを含める場合は、git pull --logを実行します。自動的に作成されたメッセージを使用するのではなく、メッセージを編集する場合は、git pull --editを使用します。その他のオプションについては、 git pullのドキュメント を参照してください。

43
Brian Campbell