Git でブランチを master にマージするときに問題が発生しました。まず、 を実行してブランチ名を取得しましたgit ls-remote
。そのブランチを「branch-name」としましょう。次に、git merge branch-name
コマンドを実行したところ、次の結果が得られました。
fatal: branch-name - not something we can merge
このエラーを解決するにはどうすればよいですか?
Git でブランチを master にマージするときに問題が発生しました。まず、 を実行してブランチ名を取得しましたgit ls-remote
。そのブランチを「branch-name」としましょう。次に、git merge branch-name
コマンドを実行したところ、次の結果が得られました。
fatal: branch-name - not something we can merge
このエラーを解決するにはどうすればよいですか?
で示したように、「融合できないもの」はどのように発生するのでしょうか。、このエラーは、存在しないブランチをプルしようとしているため、ブランチ名のタイプミスが原因で発生する可能性があります。
それが問題でない場合 (私の場合のように)、マージしたいブランチのローカル コピーがない可能性があります。Git は、これらのブランチをマージするために、両方のブランチのローカル知識を必要とします。これを解決するには、マージするブランチをチェックアウトしてから、マージ先のブランチに戻ります。
git checkout branch-name
git checkout master
git merge branch-name
これは機能するはずですが、次のようなエラーが表示された場合
error: pathspec 'remote-name/branch-name' did not match any file(s) known to git.
ブランチをチェックアウトする前に、リモートをフェッチする必要があります (おそらく、必ずしも「オリジン」ではありません)。
git fetch remote-name
ばかげた提案ですが、ブランチ名にタイプミスがないことを確認してください!
リモートのアップストリームから引っ張るときgit fetch --all
、私のためにトリックをしました:
git remote add upstream [url to the original repo]
git checkout [branch to be updated]
git fetch --all
git merge upstream/[branch to be updated]
それ以外の場合、リモート (オリジン、アップストリーム) ブランチが存在しない場合にも、「マージできるものではありません」というエラーが発生することがわかりました。これは当たり前のように思えるかもしれませんがgit merge origin/develop
、master
.
私もこの問題を抱えていました。ブランチは「ユーザー名/マスター」のように見え、私が定義したリモートアドレスのように見えたため、git を混乱させたようです。これを使っている私にとって
git merge origin/username/master
完全にうまくいきました。
以下の方法は毎回うまくいきます。
git checkout master
git pull
git checkout branch-name-to-be-merged
git pull
git checkout branch-name
git pull
git merge branch-name-to-be-merged
origin
キーワードを使用しておらず、ブランチが独自のものではない場合にも、このエラーが発生する可能性があります。
git checkout <to-branch>
git merge origin/<from-branch>
このエラーは、変更をマージする元のブランチ (例: branch-name) がローカルに存在しないことを示唆しているため、ブランチをチェックアウトしてローカルの変更をフェッチする必要があります。マスター ブランチにチェックアウトしてフェッチし、次の手順に従います。
git checkout branch-name
git pull
git checkout new-branch-name
git merge branch-name
マージするブランチがローカル リポジトリに存在しないため、このエラーが発生しています。
したがって、最初に次のコマンドで master ブランチにマージするブランチをチェックアウトします。
git checkout branch_name_to_merge
この後、次のコマンドで master ブランチとのマージを試みます。
git merge branch_name_to_merge
git merge BRANCH_NAME "some commit message"
コミットメッセージに -m フラグを追加するのを忘れていたため、ブランチ名にコメントが含まれていると考えられました。
ブランチ名にコンマ (,) が含まれていたため、このエラーが発生しました。ローカル ブランチを削除してから、カンマなしの新しい名前で再チェックしました。無事合体できました。
参照を含む文字列が別の Git コマンド (またはその他のシェル コマンド) によって生成される場合は、末尾に改行が含まれていないことを確認してください。文字列を「git merge」に渡す前に、それを削除する必要があります。
エラーメッセージが2行にあるため、これがいつ発生するかは非常に明白であることに注意してください。
merge: 26d8e04b29925ea5b59cb50501ab5a14dd35f0f9
- not something we can merge