2016-04-18 10 views
0

など。私はmasterに基づいてfeatureブランチを持っています。新しいコミットは1つで、2つのファイルが追加されています。Git:マスタでのリベース時にローカルブランチの変更が適用されない

commit hash1 
A test.html 
A test.png 

は、今私は、最新のコードを取得するためにmasterにこのfeatureブランチをリベースします。私がfeatureブランチで作業を開始して以来、新しいコミットはmasterに追加されました。

commit hash2 
A test.html 

私がgit rebase masterを実行しているとき、私はこの出力を得ました。完全に否定featuretest.htmlから結果変化として

First, rewinding head to replay your work on top of it... 
Applying: Initial commit. 
Using index info to reconstruct a base tree... 
M test.html 
Falling back to patching base and 3-way merge... 
error: The following untracked working tree files would be overwritten by merge: 
    test.html 
Please move or remove them before you can merge. 
Aborting 
Failed to merge in the changes. 
Patch failed at 0001 Initial commit. 
The copy of the patch that failed is found in: 
    /<path>/.git/rebase-apply/patch 

When you have resolved this problem, run "git rebase --continue". 
If you prefer to skip this patch, run "git rebase --skip" instead. 
To check out the original branch and stop rebasing, run "git rebase --abort". 

masterからバージョンであり、test.pngは全く添加しませんでした。

この状況を解決するにはどうすればよいですか?

+0

"test.pngはまったく追加されませんでした。"現在のエラーが解決され、 'git rebase --continue'が実行されたときにだけ追加されます。 – VonC

答えて

0

だけ手動で競合を解決し、同じファイルをマスターして、ローカルブランチの両方で変更されたためgit rebase --continue

+0

実際には矛盾はありません。私は<< << >>>>>ハッシュ部分を 'test.html'ファイルに入れていないので、マージ競合はありません。 –

+0

@VladimirTsyupko新しいファイルを追加すると、gitはこの新しいファイル用の新しいノードを作成します。あなたの場合、gitは新しいノードに既存のファイルパス名を追加することを検出し、競合が発生したと判断します。この競合は、ファイルコンテンツ以外のファイルノードに関するものです。 – gzh

0

を実行し、マージ競合が発生したメッセージに示されるように、Gitは自動的にそれらをマージすることができません。あなたは自分で矛盾を解決しなければなりません。最も現代的なIDEにはそれを行う方法があります。そうでなければ、kdiffまたはother toolsで3つの方法を探すことができます。

競合を解決したら、続行するようにgitに指示する必要があります。 git rebase --continue

Gitはあなたが作品をリベースどのように見ることができますGit manualから、.PNGファイルを追加しなかった理由としては:それは、二つのブランチの共通の先祖に行くことによって動作します

(1あなたがしていますデフォルトのファイルに保存する、現在のブランチを再ブランチするブランチと同じコミットにリセットする、そして最後に各変更を順番に適用します。

gitは機能ブランチに変更を正常に適用できなかったため、処理を一時停止しました。

関連する問題