1

重複の可能性:
Git とのマージの問題

いくつかの変更を加えた(いくつかのファイルを削除した)gitリポジトリをダウンロードしてから、コミットしました。次に、 git checkout -b "new branch" を実行しました。ここではファイルを削除しませんでしたが、いくつかの変更を加えてコミットしました。今、マスターブランチに戻り、git merge new_branch_i_created を実行しようとしましたが、次のように述べています。

fatal: 'merge' is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>' as
appropriate to mark resolution and make a commit, or use 'git commit -a'.

私は何を間違っていますか?

そして、マスター ブランチから新しいブランチにチェックアウトしようとすると、次のように表示されます。

GDCatalog/.classpath: needs merge
GDCatalog/src/com/cyrilmottier/android/gdcatalog/CatalogActivity.java: needs merge
GDCatalog/src/com/cyrilmottier/android/gdcatalog/PagedViewActivity.java: needs merge
GreenDroid-GoogleAPIs/.classpath: needs merge
GreenDroid/.classpath: needs merge
GreenDroid/src/greendroid/widget/PagedView.java: needs merge
error: you need to resolve your current index first
4

1 に答える 1

2

git からのエラー メッセージがすべてを表しています。マージ コミットを送信する前に解決する必要がある 2 つのブランチ間のマージ解除された変更があります。これらのマージの競合は、ファイルが 2 つのブランチで変更されているために発生します。

これを解決するには、競合しているファイルを編集する必要があります。ファイルごとに、マージを解決する必要があります。<<<<<<<<<<<競合は、、===========および>>>>>>>>>>マーカーで囲まれます。それらをどのように解決するかは、変更によって異なります (自分の変更、リモート ブランチの変更、またはその 2 つの組み合わせを保持したい場合があります)。

すべての競合を解決したら、git addファイルごとに行う必要があります。そしてgit commit。事前入力されたコミット メッセージは、これがマージ コミットであり、いくつかの競合が解決されたことを示します。コーディング スタイルでコミット メッセージの特定の書式設定が必要でない限り、おそらく編集する必要はありません。

したがって、要約すると、次のことを行う必要があります。

$ emacs GDCatalog/.classpath
... resolve conflict ...
$ git add GDCatalog/.classpath
... do the same for all other files ...
$ git commit
于 2013-01-05T11:54:17.103 に答える