27

私は2つのブランチを持っていmasterますnewfeaturenewfeatureにマージしたいときはmaster、次を使用しました。

git checkout master
git merge newfeature

エラーが発生します:

Auto-merging .gitignore
CONFLICT (content): Merge conflict in .gitignore
Automatic merge failed; fix conflicts and then commit the result.

私が開いたところ.gitignore、ファイルの最後の部分が次のようになり、混乱しているように見えます

<<<<<<< HEAD
public/img/ignore
=======
public/img/profiles
public/blog
public/recommendation
>>>>>>> newfeature

ブランチを にマージできるようにするには、これをどのように修正する必要がありmasterますか?

4

8 に答える 8

29

両方のブランチで .gitignore を編集しました。現在、git は各コピーのどの行が正しいか不明であるため、それらを解決するように求めています。

台詞:

<<<<<<< HEAD
public/img/ignore
=======

マスターのファイルのコピーに表示されるものです。

=======
public/img/profiles
public/blog
public/recommendation
>>>>>>> newfeature

ブランチ内の新機能

最終的に表示されるように、ファイルを編集する必要があります。それで...

git add .gitignore
git commit
于 2012-08-28T13:52:51.800 に答える
9

ファイルを編集.gitignoreして競合を解決するだけです。

<<<<<<< HEAD
public/img/ignore
=======
public/img/profiles
public/blog
public/recommendation
>>>>>>> newfeature

public/img/ignore
public/img/profiles
public/blog
public/recommendation

それで:

git add .gitignore

git commit

自動生成されたコミット メッセージが表示され、それを受け入れ (保存して閉じる)、完了です。

于 2012-08-28T13:51:03.217 に答える
2

ファイル内の競合を修正し.gitignore、更新されたバージョンを追加してからコミットします。

vim .gitignore
# assuming you want all 4 lines: simply remove the conflict markers (<<<<<<, ======, and >>>>>)
git add .gitignore
git commit
于 2012-08-28T13:50:26.650 に答える
2

何が起こったかというと、マージの競合が発生したことです。2 つのブランチがファイルを「同時に」別々のストリームで変更しました。他のブランチが行った変更は「newfeature」セクションで、他のブランチは HEAD セクションで確認できます。

あなたがする必要があるのは、そのファイルを編集して、必要なコンテンツが含まれるようにし、それを追加してコミットすることです。これは、マージ コミットと呼ばれます。

さて、上で言ったことは、「手動で」手動でマージを行うことです。一番わかりやすいかも。コマンドを使用git mergetoolして、構成されている場合はビジュアルツールでそれを行うことも、競合の処理方法を指示する戦略で「git merge」を使用することもできます。

于 2012-08-28T13:53:57.060 に答える
1

を使用git mergetoolして競合を解決し (または手動で修正します。解決するのが特に難しいケースではありません)、再度コミットします。

于 2012-08-28T13:50:07.407 に答える
1

.gitignore を手動でマージしてから、インデックスに追加する必要があります

$ git add .gitignore

ここでマージの基本を取得できます: http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging

于 2012-08-28T13:50:50.080 に答える
1

Git の自動マージが失敗しました。これは通常、ブランチ/プッシュ コンテンツをマージしようとしたときに、異なるブランチ/リポジトリで同じファイルに同時に変更が加えられた場合に発生します。

ブランチ newfeature で .gitignore に加えられた変更は、マスターで行われたものと競合します。行:<<<<<<< HEADは、この行に続く master で行われた>>>>>>> newfeature変更を示し、行は、この行の前にある newfeature で行われた変更を示します。2 つの変更は で区切られてい=======ます。

ファイルを手動で編集し、2 つの部分のそれぞれで役立つものを保持/マージする必要があります。次に、コミットする必要があります(<<<<HEAD=====および>>>newfeature行を削除した後)。

于 2012-08-28T13:54:50.123 に答える