2016-07-13 11 views
0

私はGitを使い始めました。マージの競合を解決するためのより早い方法を探しています。ブランチをマスターにマージしようとしたところ、ファイルの一部にマージの競合が発生したとします。それぞれのファイルを手作業で編集せずにマージの競合を解決しました

Changes to be committed: 

    modified: ... 

Unmerged paths: 
    (use "git add <file>..." to mark resolution) 

    both modified: ... 

Gitは両方の修正ファイルに入り、競合解消マーカーを追加しますか? (< < < < < < <このもの)。通常はファイルに入って手動で変更しますが、この場合はすべてbinファイルであり、プログラムの作業にはあまり関係しません。 modifiedファイルをすべてステージングして、unmodifiedファイルをマージする前にmasterのままにしておきたいことを指定する方法はありますか? (基本的にブランチからそれらのファイルへの変更は無視されます)。ありがとう

+1

ファイルを追跡するポイントそれで? – choroba

+0

あなたはポイントがあります。私のプロジェクトは何千ものファイルがあるので、私が初期化したときには、 'git add 'を実行しただけで、マージの競合を追跡する価値がないかもしれないことに気付かずに。リポジトリから削除します。しかし、それらが役に立つのであれば、特定のファイルだけをマージする方法はありますか? – mysticalstick

+0

また、あなたの.gitignoreにこれらのファイル(またはそれにマッチするパターン)を追加することを検討してください。これは彼らがまったく追跡されないようにします。彼らが必要でないならば長期的にはより良い。 – Conduit

答えて

1

使用するファイルのコピーを見つけてチェックアウトし、変更をステージングしてからコミットする必要があります。たとえば:

git log 

(find out we want the file from commit ac3422d4ceba793ff9fd3df81159d23111a760e2) 

git checkout ac3422d4ceba793ff9fd3df81159d23111a760e2 file/to/fix.txt 
git add file/to/fix.txt 
git commit -m "success!!" 

何これが行うことは次のとおりです。

  • 指定のいずれかを使用してファイルを置き換えるには、
  • を解消よう
  • 段階の変化は、ファイルのマージ競合をマークコミット
  • 変更/マージをコミットします
0

マージするときに、 "戦略"を指定できます。 git help mergeから:

我々

これはヘッドの任意の数を解決しますが、マージの結果ツリーを効果的 他のすべてのブランチからのすべての変更を無視して、常にその現在のブランチヘッドのです。これは、サイドブランチの古い開発履歴に取って代わるために使用されることを意図しています。 これは、再帰的マージ戦略の-Xoursオプションとは異なります。

関連する問題