私は多くのアプローチを試しましたが、実際に何が起こっているのか、それを修正する方法がわかりません:
リモートとローカル (私のマシン上) の 2 つの git リポジトリがあります。私は勉強しているので、コードを試したり、ローカル ファイルに多くの変更を加えたりしています。通常、変更されたすべてのファイルを元に戻し、リモートリポジトリからプロジェクトの実際のバージョンをプルします。しかし、今では私が変更した 1 つのファイル (たとえばhello.jsp
) があり、それらの変更はコミットされています。その後、他のファイルに関連する他の変更を数回コミットしました。hello.jsp
さて、ローカルをリモートリポジトリの同じファイルに置き換えたいと思います。だから私はgit pull --rebase
マージの競合を得ました:
Applying: merge fixed
Using index info to reconstruct a base tree...
M hello.jsp
<stdin>:10: trailing whitespace.
function showHello() {
<stdin>:11: trailing whitespace.
<stdin>:12: trailing whitespace.
document.getElementById('q').style.display = 'none';
<stdin>:13: trailing whitespace.
document.getElementById('w').style.display = 'none';
<stdin>:14: trailing whitespace.
document.getElementById('e').style.display = '';
warning: squelched 120 whitespace errors
warning: 125 lines add whitespace errors.
Falling back to patching base and 3-way merge...
Auto-merging hello.jsp
CONFLICT (content): Merge conflict in hello.jsp
Failed to merge in the changes.
Patch failed at 0001 merge fixed
The copy of the patch that failed is found in:
d:/repo/helloProject/.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".
まあ..最初に、覚えているすべての変更を手動で削除しようとしました。しかし、ある種の「show diff」を使用しても、すべての詳細が変更されたことを見つけるのに時間がかかります (「hello.jsp」は非常に巨大であると信じてください)。
やろうとしてやろgit reset "hello.jsp"
うとしgit checkout "hello.jsp"
たが、うまくいかなかった。「hello.jsp」をリモートリポジトリの別のものに置き換えるだけですか?