ファイルのマージを完了する方法は?


103

Gitでファイルをマージした後、リポジトリをプルしようとしましたが、エラーが発生しました:

マージを完了していません。(MERGE_HEADが存在します)

どのようにしてマージを完了するのですか?

回答:


94

git statusリポジトリのステータス()を確認します。マージされていないすべてのファイル(競合を自分で解決した後)を追加する必要があります(git add)。マージされていないファイルがない場合は、git commit


11
しかし、すべてがコミットされ(git statusクリーンな作業ディレクトリが表示される)、上記のエラーが引き続き発生する場合はどうなりますか?
Marius Soutier

1
@Marius git statusメッセージをフィルタリングするエイリアスではなく、必ず標準を実行してください。現在のバージョンでは、git statusを実行すると、「マージを完了する」ために何をすべきかを示すメッセージが表示されます。そして、すべてがマージされていて何も失うことがないと確信している場合は、.git / MERGE *にあるファイルを削除するだけで、マージしようとしたものと、そのマージのデフォルトのコミットメッセージが保存されます
MBO

1
ありがとう、それが最終的に私がやったことですが、どういうわけか、これはバグがあるようです。すべてをマージしてコミットした場合、MERGE_HEADはどのように存在しますか?
Marius Soutier 2012年

2
うん、私はマリウスと同じ問題を抱えていて、マージを行い、競合を解決しましたが、今は何もコミットしません(どういうわけか)。提案どおりにMERGE *ファイルを手動で削除する必要がありました。
Simon East

@johndpope power( "tnx"、100)
knagode

31

注意と更新:

Git1.7.4(2011年1月)以降、マージの進行中はgit merge --abort" git reset --merge" と同義です。

しかし、マージを完了したいのに、どういうわけか追加するものが残っていない場合、rm -rf .git/MERGE*Gitが現在のマージを忘れるのに十分な原油で十分です。


MERGE_HEADを削除した場合、結果のコミットには親が1つしかないので、マージされたブランチの履歴はありませんか?
Jason Goemaat

@JasonGoemaat はマージを中止しようとしていることを考えると、とにかく「結果のコミット」はありません。
VonC、2015


1

SourceTreeでこのエラーが発生した場合は、[アクション]> [競合の解決]> [マージの再開]に移動します。

使用されるSourceTreeのバージョンは1.6.14.0です


0

私は同じエラーがあり、グーグルで見つけた記事に従って私の問題を解決しました。 マージを完了していません


ソリューションへのリンクはいつでも歓迎ですが、リンクが古くなっている可能性があるため、回答に重要な情報を追加してください。
slfan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.