2

ブランチにマージしたので、ファイルをマージする必要がありましたmasterbugXYしかしgit mergetool失敗し(私のnoobのせいだと思います)、マージを中止しても、作業ディレクトリが汚れたままになりましたが、マージする必要はありませんでした。マージコマンドを繰り返したいのですが、マージによって残った新しいファイルが原因でできません。

マージを元に戻し(何もコミットしなかった)、以前の作業ディレクトリを正確に取得するにはどうすればよいですか?

私がしたこと:

> git checkout bugXY
On branch "bugXY" - nothing to commit
> git merge master
[modifying and adding lots of files]
one file with conflict
On branch "bugXY|MERGING"
> git mergetool
You could use a, b or c
merged // didn't work, no GUI appeared and I did not do anything
do you want to remove, commit or abort?
> abort // Hu, what happened?
On branch "bugXY" // no MERGING any more???

おっと、私は何をしましたか?繰り返しgit mergeは機能しません。作業ディレクトリ内のファイルを変更(およびステージング)しました。OK、元に戻します。私は試した:

> git reset --hard HEAD

> git checkout bugXY

これでステージングされるものはもうありませんが、追跡されていない作業ツリーファイルgit mergeがまだたくさんあるため、再度実行できません(「上書きされます。[削除]してください」)。どうやってやるの?それぞれがうまくいくと思いrm path/to/file.phpますが、たくさんあります...

4

3 に答える 3

14

ドライランを実行していない場合にgitがパージするファイルを表示します。

git clean -ndx

作業ツリーからこれらすべてのファイルを実際に削除します。

git clean -fdx
于 2012-06-14T02:46:15.690 に答える
8

git mergeマニュアルによると:

- アボート

現在の競合解決プロセスを中止し、マージ前の状態を再構築してみてください。

だから私はgit merge --abort新たに始めようとします。

于 2012-06-14T14:35:51.160 に答える
3

git reset--hardHEADインデックスと作業ツリーをリセットします。作業ツリー内の追跡されたファイルへの変更はすべて破棄されます。

resetコマンドを実行する前にファイルをコミットしなかった場合、ファイルはresetコマンドによって消去されます。必要なオプションの1つは、git reset --hardを使用することです。これにより、提供されたコミットの状態にリセットされます。

うまくいけば、それはあなたに役立つでしょう。

于 2012-06-14T02:05:10.357 に答える