4

ローカルを更新するためにからプルしoriginましたが、1つのファイルで競合する変更がありました。競合を解決しましたが、ファイルが競合しているとgitが判断しているため、(ローカルで)コミットできません。

$ git add style.css

これは機能します-エラーなどはありません。それで:

$ git commit

Merge branch 'dev' of [origin] into dev

Conflicts:
        [path]/style.css
#
# It looks like you may be committing a MERGE.
# If this is not correct, please remove the file
#       .git/MERGE_HEAD
# and try again.
#

なぜこれが機能しないのですか?

4

3 に答える 3

2

ここで基本的に何が起こったのかを説明します。

プルによってリモート ブランチのマージが開始されました (リベースを実行する「-r」フラグを使用してリベースを実行しなかったため)。マージ自体に競合があり、中止されました (これは、プルが終了しなかったことも意味します)。競合を解決したら、競合するファイルを追加し、「git commit」を実行して実際にプル (およびそのために必要なマージ) を完了する必要があります。これにより、コミットメッセージに記載されているファイル「.git/MERGE_HEAD」が削除されます。これは、現在マージの途中であることを示しています。

この後、あなたはきれいな状態になり、すべてがうまくいくはずです.

于 2012-06-30T20:47:56.950 に答える
1

私はこれを自分で持っていて、解決策を探しているときにこの質問を見つけました。デフォルトのテキスト エディタに「競合」メッセージが表示されました。gitshell を開いたままテキスト エディタを閉じると、コミットが完了しました。

于 2015-08-25T16:23:41.730 に答える
0

これで元の問題が技術的に解決されるわけではありませんが、回避できます。私がしたことは、変更を にバックアップしてから、ローカルブランチを にstyle.cssリセットすることでした。local と origin が同一になったため、これにより競合が何であれ解決されましたが、プロセスでローカルブランチのコミットが1つ遅れました。devorigin/devdev

そのため、バックアップstyle.css(最新の変更が含まれている) を現在のローカル バージョンと比較し、変更をマージしてコミットしました。

于 2012-06-29T16:28:25.700 に答える