複数のブランチを持つプロジェクトがあります。これまではGitHubにプッシュしていましたが、他の人がこのプロジェクトを担当するようになったので、その人のブランチをGitHubから引き出す必要があります。masterではうまくいきます。しかし、ある人がブランチ xyz
を作成したとしましょう。ブランチ xyz
を GitHub から引っ張ってきて、それを自分の localhost
のブランチ xyz
にマージするにはどうしたらいいでしょうか?
実は、私の答えはここにあります。 https://stackoverflow.com/questions/1072261/push-and-pull-branches-in-git
しかし、エラーが発生します "![rejected]"と、"non fast forward"についての何かが表示されます。
何か提案はありますか?
リモートブランチを明示的に追跡するだけで、シンプルな git pull
で思い通りの結果を得ることができます。
git branch -f remote_branch_name origin/remote_branch_name
git checkout remote_branch_name
後者はローカルでの操作になります。
あるいは、GitHub documentation on forkingの内容にさらに合致しています。
git branch -f new_local_branch_name upstream/remote_branch_name
以下のコマンドで、あるブランチをあるブランチにプルすることができます。
git pull {repo} {remotebranchname}:{localbranchname}
git pull origin xyz:xyz
master ブランチにいるときは、まず次のようにしてブランチをチェックアウトすることもできます。
git checkout -b xyz
これは、masterから新しいブランチ、"xyz"を作成し、それを直接チェックアウトします。
そして、次のようにします。
git pull origin xyz
これにより、新しいブランチがローカルの xyz
ブランチに取り込まれます。