我有 2 个没有推送的提交:
$ git status
# On branch master
# Your branch is ahead of 'faves/master' by 2 commits.
Run Code Online (Sandbox Code Playgroud)
如何回滚我的第一个(最旧的),但保留第二个?
$ git log
commit 3368e1c5b8a47135a34169c885e8dd5ba01af5bb
...
commit baf8d5e7da9e41fcd37d63ae9483ee0b10bfac8e
...
Run Code Online (Sandbox Code Playgroud)
从这里:
http://friendfeed.com/harijay/742631ff/git-question-how-do-i-rollback-commit-just-want
我只需要做:
git reset --hard baf8d5e7da9e41fcd37d63ae9483ee0b10bfac8e
Run Code Online (Sandbox Code Playgroud)
那是?
jti*_*man 102
最安全也可能是最干净的方法是交互式地变基。
git rebase -i HEAD^^
Run Code Online (Sandbox Code Playgroud)
或者,
git rebase -i baf8d5e7da9e41fcd37d63ae9483ee0b10bfac8e^
Run Code Online (Sandbox Code Playgroud)
从那里你可以压缩提交,将一个或多个提交放在前一个提交中。要从历史记录中完全删除提交,请从列表中删除该行。
您可以恢复提交,git revert
但它会向历史记录中添加更多提交消息,这可能是不可取的。使用该-n
参数告诉 Git 不要立即提交还原。您可以交互式地重新设置基础并将其压缩到先前的承诺以保持清洁。
如果您在此处处理的两个提交影响相同的文件,您可能会看到合并冲突。
重置存储库git reset --hard
应该小心完成,因为它无法撤消。
重写历史应该小心。
小智 65
这如果来自http://nakkaya.com/2009/09/24/git-delete-last-commit/ 并且对我有用
Git 删除上次提交
偶尔在深夜喝完咖啡时,我会犯一些我不应该做的事情。然后我在接下来的 10 - 15 分钟内搜索如何删除我所做的最后一次提交。所以第三次之后,我想把它记录下来,以便以后参考。
如果你犯了垃圾但没有推送,
git reset --hard HEAD~1
HEAD~1 是 head 之前提交的简写。或者,您可以参考要重置为的哈希值的 SHA-1。请注意,当使用 --hard 时,对工作树中跟踪文件的任何更改,因为 head 之前的提交都丢失了。
如果您不想清除您所做的工作,您可以使用
--soft
删除提交的选项,但它将保留所有更改的文件“要提交的更改”,正如 git status 所说的那样。现在,如果你已经推了,有人拉了,这通常是我的情况,你不能使用 git reset。但是,您可以执行 git revert,
git revert HEAD
这将创建一个新的提交,以逆转意外提交引入的所有内容。
不。git-reset --hard 将带你回到历史。您正在寻找的是 git revert,它将撤消任何提交。
小智 6
我只是这样做了:
git rebase -i HEAD^^
Run Code Online (Sandbox Code Playgroud)
我搞砸了所以我做到了
git rebase --abort
Run Code Online (Sandbox Code Playgroud)
然后又做了。然后我不得不像这样推动:
git push origin master -f
Run Code Online (Sandbox Code Playgroud)
它销毁了比我回滚到的提交更新的提交。工作得很好。
不,git reset --hard baf8d5e
将删除3368e1c
提交,然后 HEAD 将在baf8d5e
。
如果您想保留3368e1c
提交并删除bad8d5e
提交,最简单的解决方案是执行“ git rebase -i HEAD~2
”(即最后两次提交的交互式变基)。此命令将启动您的提交消息编辑器,您将看到最后两次提交中的每一个都对应一行。在那里您只需删除bad8d5e
提交行并保存。然后 git 将重写您的历史记录,第二次提交将消失。
您可以在提交消息编辑器中使用其他有用的命令squash
,例如edit
、 等。交互式变基非常强大!
如果有人已经看到这些提交(从您的存储库推送或拉取),请不要这样做!
归档时间: |
|
查看次数: |
307448 次 |
最近记录: |