リモートサーバーから特定のブランチをプルする 質問する

リモートサーバーから特定のブランチをプルする 質問する

誰かがブランチを作成したとします。リモートサーバーからxyzブランチをプルするにはどうすればいいでしょうか(例:xyzGitHubxyz) を作成し、それをローカル リポジトリの既存のブランチにマージできますか?

答えはブランチをGitにプッシュする「! [拒否]」というエラーが表示され、「早送り不可」と表示されます。

ベストアンサー1

しかし、「! [拒否]」というエラーと「早送り不可」に関するエラーが表示されます

これは、Git がブランチの変更を現在のマスターにマージできないためです。ブランチ をチェックアウトしmaster、リモート ブランチ にマージするとしますother-branch。これを行うと、次のようになります。

$ git pull origin other-branch

Git は基本的に次のことを行います:

$ git fetch origin other-branch && git merge other-branch

つまり、 a はa の後に が続くpullだけです。ただし、-ing の場合、Git はfast-forwardマージを実行できる場合にのみマージを行います。fast-forwardマージとは、マージしようとしているブランチのヘッドが、マージするブランチのヘッドの直接の子孫であるマージです。たとえば、この履歴ツリーがある場合、マージするとfast-forward マージになります。fetchmergepullother-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!

おすすめ記事