1. ホーム
  2. git

[解決済み] GitHub から特定のブランチをプルする

2022-03-20 13:09:03

質問

複数のブランチを持つプロジェクトがあります。私はそれらを ギットハブ そして今、他の誰かがこのプロジェクトで作業しているので、GitHub から彼らのブランチをプルする必要があります。master では問題なく動作しています。しかし、誰かが作ったブランチ xyz . ブランチ xyz を GitHub から取得し、それをブランチ xyz を私の localhost ?

実はここに私の答えがあるんです。 Git でのブランチのプッシュとプル

しかし、エラーが出る "! [rejected]"と、早送り不可"のようなものが表示されます。

何か提案はありますか?

解決方法は?

<ブロッククオート

しかし、エラーが発生する "! [rejected]"と、早送り不可"のようなものが出てきます。

これは、Gitがブランチの変更を現在のマスターにマージできないからです。例えば、あなたがブランチ master で、リモートブランチの other-branch . これを実行すると

$ git pull origin other-branch

Gitは基本的にこうしています。

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

つまり pull は単なる fetch の後に merge . しかし pull -を使用すると、Git は のみ マージ other-branch もし を実行することができます。 早送り をマージします。A 早送り マージは、マージしようとするブランチの先頭が 直系卑属 は、マージしたいブランチのヘッドと同じです。たとえば、このような履歴ツリーがある場合、以下のようにマージすることができます。 other-branch を実行すると、fast-forward マージになります。

O-O-O-O-O-O
^         ^
master    other-branch

しかし、これでは ない は、fast-forward mergeになります。

    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!