しかし、「![拒否されました]」というエラーと「非早送り」に関する情報が表示されます
これは、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!