Git撤消上次提交

Jus*_*tin 13 git

我在两个分支之间合并了错误的方法.然后我运行了以下内容:

git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)

我现在回到之前的提交(这是我想要的地方).这是正确的做法吗?

糟糕的提交仍然在存储库中,是否可以,或者我应该做些什么来将其从存储库中删除?

我还没有推或做任何其他事情.

Jam*_*ory 15

这是正确的做法.

你可以做一个git gc垃圾收集断开连接的提交,但它没有必要.

  • 好吧,在`git gc`删除该提交之前需要90天.可以从reflog计数到达可达,并且reflog需要90天才能到期(默认情况下).但答案的要点是正确的:git正在寻找你,尽量不要永久删除任何东西,以防万一. (6认同)
  • 你也可以做git reset --soft HEAD ^ (2认同)