1
  1. 変更をコミットし、新しい機能の作業を開始しました。
  2. 私は物事を台無しにしていたことに気づきました
  3. 以前のコミットに戻す必要がありました。

私がしたこと。

git add .
git commit -m "Screwed Up"
git branch -m experiment
git checkout 62b5 (SHA1 of previous commit)
git checkout -b master
git branch -D experiment

以前のコミットに戻すためのより良い方法があるに違いないと思います。

を試してみると、git reset HEADまだコミットされていない変更が表示されますgit status

それを行うためのより良い方法がある場合、それは何ですか? または、このような状況を回避するために別のワークフローを使用する必要がありますか?

4

2 に答える 2

3

git reset --hard前のコミットに戻すことができます。

--hardインデックスと作業ツリーをリセットします。最新のコミット以降に作業ツリー内の追跡されたファイルに加えられた変更はすべて破棄されます。

于 2012-12-23T21:42:58.903 に答える
1

reset --hard可能であればしないでください。追跡されていない、またはステージングされていない変更がある場合は、元に戻すことができます。使用する

git stash -u

安全であるために。クリーンな作業ディレクトリが再び取得されます。誤って変更を破棄した場合は、git stash コマンドを使用していつでも元に戻すことができます。

スタッシュされた変更はプッシュアップされないため、他のリポジトリを台無しにしたり肥大化させたりすることはありませんが、少しのセーフティネットが得られます。したがって、リクローンすると、隠し場所が失われます。そのため、レポの問題を修正するために再クローンすることも悪い考えです。再レレの記録や reflog などを失う可能性もあります。

于 2012-12-23T22:06:35.323 に答える