2

私はまだGitのワークフローを学んでいて、いくつかのファイルをコミットしたときに誤って間違った作業ブランチにいることに気づきました。そこで、EGitを使用して、コミット履歴を一覧表示し、コンテキストメニューから[コミットを元に戻す]を選択して、いくつかのコミットを行いました。

それ以来、私はそれらのコミットが必要であることに気づきましたが、元のコミットはどこにも見つかりません。元のコミットはほとんど削除されたようです。gitリポジトリ全体で完全なログリストを作成しても、元のコミットまたは復帰コミットは表示されません。

EGitドキュメントの私の理解から、revert commitは、古いコミットの上に新しいコミットを作成し、それが行ったことを元に戻すことによって、変更を「元に戻す」ことになっています。ただし、実際には元のコミットが削除されたように見えます。

私は乾杯ですか?私はそれらの変更を永久に失いましたか?EGit2.1.0.20120919でEclipse3.7を実行しています。

4

2 に答える 2

4

git revert、あなたが言ったように、コミットは削除されません。渡された特定のコミットの変更を元に戻す新しいコミットを作成するだけです。したがって、元のコミットはまだリポジトリにあります。コミットを一覧表示するgit logと、元のコミットと、元のコミットの機能を元に戻すコミットが表示されます。

これにより、コミットの元のコンテンツを復元するために、元に戻すコミットを元に戻すか、リポジトリのステータスを元に戻す前のコミットに変更できます。git reset --hard hashここで、ハッシュは、hashcommit表すコミット前のを表しますgit revert

于 2013-01-15T05:23:51.017 に答える
1

最善の策は、日食とエジットをしばらく放置して、コマンドラインを使用することです。

git reflogをはるかに超えるものを表示できると呼ばれるツールがありますgit log。リポジトリに対して何をしたかを試してみることをお勧めします。

于 2013-01-15T05:24:47.477 に答える