172

「master」ブランチに追いつくために「dev」をリベースしようとしています。

$ git checkout dev 
$ git rebase master 
First, rewinding head to replay your work on top of it...
Applying: Corrected compilation problems that came from conversion from SVN.
Using index info to reconstruct a base tree...
M       src/com/....
<stdin>:125: trailing whitespace.
/**
<stdin>:126: trailing whitespace.
 *
<stdin>:127: trailing whitespace.
 */
<stdin>:128: trailing whitespace.
package com....
<stdin>:129: trailing whitespace.

warning: squelched 117 whitespace errors
warning: 122 lines add whitespace errors.
Falling back to patching base and 3-way merge...
Auto-merging src/com/....
CONFLICT (content): Merge conflict in src/com/...
Failed to merge in the changes.
Patch failed at 0001 Corrected compilation problems that came from conversion from SVN.

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

$ vi src/com/.....   { fixed the merge issue on one file } 
$ git add -A . 
$ git rebase --continue 
src/com/....: needs merge
You must edit all merge conflicts and then
mark them as resolved using git add
$ vi src/com....      { verified, no >>> or <<< left, no merge markers } 
$ git rebase --continue 
Applying: Corrected compilation problems that came from conversion from SVN.
No changes - did you forget to use 'git add'?
If there is nothing left to stage, chances are that something else
already introduced the same changes; you might want to skip this patch.

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

何か案は?

4

5 に答える 5

280

私がrebase立ち往生しているのを見たいくつかの状況があります。1つは、変更がnullになった場合(コミットに以前にリベースで行われた変更がある場合)です。この場合、を使用する必要がありますgit rebase --skip

見分けるのはとても簡単です。あなたがそうgit statusするならば、それは変化を示さないはずです。もしそうなら、それをスキップしてください。そうでない場合は、のコピーを投稿してくださいgit status。さらにサポートさせていただきます。

于 2013-01-19T02:31:31.803 に答える
18

git commit私がこの問題に遭遇したときの1つは、アフターを実行しているときgit addです。したがって、次のシーケンスでは、言及したリベースエラーが発生します。

git add <file with conflict>
git commit -m "<some message>"  
git rebase --continue

一方、以下のシーケンスはエラーなしで実行され、リベースを続行します。

git add <file with conflict>
git rebase --continue

git add -A「すべて」オプションを使用すると、同様の状況が発生する可能性があります。(私はgitに非常に不慣れなので、この答えは正しくない可能性があることに注意してください。)安全のために、git rebase --skipはこの状況でもうまく機能するようです。

于 2016-07-16T01:14:17.853 に答える
6

注:Git 2.0.2(2014年7月)では、git rebase --skipがスタックし、現在のリベースを続行できない1つのケースが修正されました。ブライアンmによるコミット95104c7
を 参照してくださいカールソン(bk2204

rebase--merge--skip: 2つの競合が連続して修正されます

git rebase --merge競合が発生した場合--skip、次のコミットも競合すると機能しません
ファイルが新しいパッチ番号で更新されることはmsgnumないため、パッチが実際にスキップされることはなく、回避できないループが発生します。

msgnumcall_mergeの最初のものとしてファイルの値を更新します。これにより、コミットをスキップするとき
の「」メッセージも回避されます。 msgnumファイルの値はこれらの状況で変更されないままであるため、call_mergeが呼び出される他のコンテキストに目に見える変化はありません。Already applied

于 2014-08-03T17:46:19.017 に答える
3
$ vi src/com....      { verified, no >>> or <<< left, no merge markers } 
$ git rebase --continue 

変更を忘れたようですgit add...

于 2013-01-19T02:12:37.183 に答える
3

たくさんの衝突(長いgit status)でリベースした後、私は自分がステージングすることになっていたことが何であるかを理解できませんでした。PhpStormと統合されたGitを使用していますが、ステージングされていないファイルは表示されませんでした。

git add .それを解決しませんでしたが、このコメントはを呼び出すことをお勧めし git diff-files --ignore-submodulesます。それは私が特にgitaddしなければならなかった3つのファイルを示しました、そしてそれはトリックをしました。

于 2020-10-12T12:35:20.267 に答える