315

git pull競合に終わったを実行しました。競合を解決し、すべて問題ありません(mergetoolも使用しました)。

解決済みのファイルをコミットするとgit commit file.php -m "message"、次のエラーが表示されます。

fatal: cannot do a partial commit during a merge.

以前に同じ問題があり-a、コミットで使用すると完全に機能しました。すべての変更をコミットしたくないので、これは完璧な方法ではないと思います。個別のコメントでファイルを個別にコミットしたい。どうやってやるの?マージ後にユーザーがファイルを個別にコミットすることを git が許可しないのはなぜですか? この問題に対する満足のいく答えは見つかりませんでした。

4

19 に答える 19

487

commit コマンドに「-i」を追加すると、この問題が解決することがわかりました。-i 基本的に、コミットする前に追加のファイルをステージングするように指示します。あれは:

git commit -i myfile.php
于 2011-11-09T09:39:50.760 に答える
129
git commit -am 'Conflicts resolved'

これは私にとってはうまくいきました。これも試すことができます。

于 2014-01-09T05:51:21.547 に答える
39

ほとんどの場合に使用できますgit commit -iが、機能しない場合に備えて

あなたがする必要がありますgit commit -m "your_merge_message"。マージの競合中は、単一のファイルをマージすることはできないため、

  1. 競合するファイルのみをステージング ( git add your_file.txt)
  2. git commit -m "your_merge_message"
于 2013-03-07T09:45:58.927 に答える
22

-mこれは、git マージの競合を解決するときに git コミットでを忘れたときに取得しました。

git commit "commit message"

する必要があります

git commit -m "commit message"
于 2015-11-10T17:30:15.190 に答える
18

コミットのためにステージングしていない何かで競合が発生した可能性があります。git では、個別にコミットすることはできません (すべてがマージの一部であるため)。そのため、git addそのファイルに移動してからgit commit -m "Merge conflict resolution". -iフラグ forgit commitが追加を行います。

于 2012-01-19T22:52:36.023 に答える
9

エラー メッセージにあるように、マージ後に部分的なコミットを行うことはできません。コミットする代わりに、file.phpすべての変更をコミットする必要があります。

これはうまくいくはずです。

git commit -m "Fixing merge" 
于 2016-04-18T00:37:38.957 に答える
8

commit コマンドの -m を見逃したようです

于 2020-12-02T19:24:17.407 に答える
6

アクションの途中でマージが停止しました。ファイルを追加してから、「git commit」を実行する必要があります。

git add file_1.php file_2.php file_3.php git commit

乾杯

于 2015-01-13T10:10:59.683 に答える
4

すべてのコメントを読んだ後。これが私の解決策でした:
コミットするよりももう一度「追加」する必要がありました:

$ git commit -i -m support.html "doit once for all" [master 18ea92e] support.html
于 2019-02-02T23:03:00.947 に答える
3

私自身、すべてのファイルを解決する前にマージをコミットしようとしたときに、これは SourceTree で発生しました。次に、最後のファイルを解決済みとしてマークしましたが、コミットしようとするとこのエラーが発生しました。SourceTree を閉じて再度開いたところ、正常にコミットされました。

于 2014-05-05T14:36:25.390 に答える
2

git commit -i -m 'merge message'私にはうまくいきませんでした。と言いました:

fatal: No paths with --include/--only does not make sense.

FWIW、私はこのメッセージを受け取っていたので、この関連する質問からここに来ました:

fatal: You have not concluded your merge (MERGE_HEAD exists).

私もmergetoolを試しましたNo files need merging。非常に紛らわしいです!したがって、MERGE_HEAD はマージが必要なファイルにありません-??

最後に、このトリックを使用して、変更されたファイルのみを追加しました (追跡しないでおきたいファイルがあるため、ツリーにすべてのファイルを追加したくありませんでした)。

git ls-files -m | xargs git add

それから私はついに(!)コミットしてプッシュアップすることができました. これらの状況で何をすべきかについて、git がより良いヒントを提供してくれれば、きっと素晴らしいことでしょう。

于 2015-10-19T20:08:35.327 に答える
2

マージ中、Git はさまざまな理由から親ブランチを追跡したいと考えています。やりたいことは、git が認識するマージではありません。手動でリベースまたはチェリーピックを実行することをお勧めします。

于 2011-04-29T04:41:30.850 に答える
2

競合を解決した後に単にgit commit -m "comment"動作する必要があります..

于 2021-11-15T06:04:20.433 に答える