しかし、「![拒否されました]」というエラーと「非早送り」に関する情報が表示されます
これは、Gitがブランチからの変更を現在のマスターにマージできないためです。ブランチをチェックアウトmasterし、リモートブランチにマージするとしますother-branch。これを行うと:
$ git pull origin other-branch
Gitは基本的にこれを行っています:
$ git fetch origin other-branch && git merge other-branch
つまり、a pullのfetch後にはが続きmergeます。ただし、pull-ingの場合、Gitは早送りマージを実行できる場合にのみマージします。早送りマージは、あなたがにマージしようとしている枝の頭部があるにマージされますother-branch 、直接の子孫マージする枝の頭の。たとえば、この履歴ツリーがある場合、マージother-branchすると早送りマージになります。
O-O-O-O-O-O
^ ^
master other-branch
しかし、これは 早送りマージにはなりません。
v master
O-O-O
\
\-O-O-O-O
^ other-branch
問題を解決するには、まず リモートブランチをフェッチし。
$ git fetch origin other-branch
次に、それを現在のブランチにマージし(私はそれだと仮定しますmaster)、マージの競合を修正します。
$ git merge origin/other-branch
# Fix merge conflicts, if they occur
# Add merge conflict fixes
$ git commit # And commit the merge!