私は非常に奇妙な問題を抱えています.2つの別々のブランチがあり、単純なgit rebase --onto branchA tagOnMaster
. これは、私の古い 32 ビット マシンで完全に機能していたスクリプトを介して行われます。新しい 64 ビット マシンに切り替えたところ、正常に動作しなくなりました。
git mix コミットのようです。
たとえば、最初のコミットでファイル a と b を変更し、2 番目のコミットでファイル c を変更する 2 つの連続したコミットがあります。現在、リベースは最初のコミットを正しく作成しますが、2 番目のコミットにはファイル c への変更と最初のコミットの変更の取り消しが含まれています。この元に戻された変更は、何らかの形でディスクに取り残され、3 回目のコミットで問題を引き起こします。
私はいくつかの画像が何が起こるかをよりよく示すと思います:
スペースを変更するだけの最初の元のコミット:
2 つの新しいファイルのみを追加する 2 番目の元のコミット:
最初のリベースされたコミット - これは正しいです:
しかし、今はおかしくなっています: 2 番目のリベースされたコミットには、新しく追加された 2 つのファイルに加えて、最初のリベースされたコミットの逆が含まれています。
その 2 回目のコミットの後、リベースは次のメッセージで続行できません。
Database/Scripts/Versions/2.0.0/PKG_BODIES/normalinvoices.sql: 更新
が必要 すべてのマージ競合を編集し、git add を使用して解決済みとしてマークする必要があります
ローカルの変更を見ると、コミット 1 からの変更が再びあることがわかります。
これについての洞察をいただければ幸いです。
これは既知のバグですか? 特徴? ! 私は何か間違ったことをしていますか?企業のウイルス対策プログラムが何らかの形でファイルをロックし、すべてを台無しにする可能性はありますか? しかし、ウイルス対策プログラムがファイルを本来よりも早くそこに置く方法がわかりません...
そして最も重要なことは、リベースを再び機能させるにはどうすればよいですか?