6

.emacs.d フォルダーのリポジトリに対して行ったコミットを元に戻そうとすると、次のメッセージが表示されます。

haziz@haziz> git revert 7fe3f

error: could not revert 7fe3f0b... .emacs.d contents from ubuntu hp 15
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'

私がやろうとしているのは、init.el ファイルに加えた変更を元に戻し、元に戻そうとしている別のコミットを続けていることです。--hard をリセットすると最新のコミットが完全に消去されることがわかっているため、リセットするよりも元に戻すことをお勧めします。元に戻すことを「元に戻す」ことができるように、新しいコミットを作成したいと思います。

言い換えれば、私がやろうとしていることはこれです

Git Commits [A]...[B]

に戻されます

Git Commits [A]...[B]...[A']

私は何か間違ったことをしていますか?

編集:できる限り差分/マージを実行してから別のコミットを試みましたが、それでもこの新しいエラー メッセージが表示されます:

haziz@haziz> git revert 7fe3f0ba3182b591f11c0b59e006dc6c990b7470

fatal: Your local changes would be overwritten by revert.
Please, commit your changes or stash them to proceed.

.gitigore ファイルに頼らずに、ステージングされていないファイルを無視する (削除しない) ように指示するにはどうすればよいですか。率直に言って、emacs 一時ファイルなどであるステージングされていないファイルのほとんどは気にしません。

4

3 に答える 3

9

Q.何の衝突ですか?

後のリビジョンで同じコード行が変更されたときに、そのリビジョンのリバース パッチをマージすることによる競合:マージの競合

編集最新のコミットを元に戻す場合、これはローカルで変更があったことを意味します (を参照git status)。ステージングされたローカル変更とステージングされていないローカル変更を行うことができることを忘れないでください。すべてのローカル変更を簡単に確認するには、次を使用します

   git diff HEAD

git status競合しているファイルを確認するには、マージされていないファイル ( ) を開いてください。<<<<=====>>>>>競合マーカーがすぐに表示されます。

使用できます

git mergetool

Meld、KDiff3、Gvim などのより使いやすいツールで競合を解決します。

于 2011-11-26T21:59:05.770 に答える
0

追跡されていないファイルとステージングされていないファイルを混同しています。

  • 追跡されていないファイルは Git には認識されず、git add編集することはありません (つまりgit status、セクションに表示されますUntracked files:)。

  • ステージングされていないファイルは、ローカルの変更があり、コミットのためにステージングしなかった追跡ファイルです (つまりgit status、セクションに表示されますChanges not staged for commit:)。これらの変更は、 を実行すると次のコミットに含まれますが、なしで実行すると含まれgit commit -aません。git commit-a

ステージングされていない変更を無視するように git に指示するのは意味がありません。変更はそこにあり、Git が気にかけているファイルに影響します。

于 2015-05-03T17:20:57.200 に答える