场景:我添加了一块代码,它导致我的网站上所有按钮元素的所有背景都变为绿色。我对所使用的方法不满意,希望完全删除代码,这样我就可以从这个分支上应用这个更改之前开始,并在同一分支上使用另一种方法(回溯(来实现一种更好的针对按钮的方法。
希望完全删除代码
要回溯,您有两个选择。首先,找到(使用git log
(要回溯到的提交的SHA,即最后一个"SHA";"好";在"提交"之前提交;坏的";提交已启动。然后
git reset --hard <SHA>
或
git revert <SHA>..HEAD
不同之处在于reset
重写历史并丢弃后续提交,而revert
保留历史并引入新的"提交";撤消";提交。
解决方案:将代码重置为较早点
要采取的步骤:
确定要将代码还原回-git log
的位置下一步,使用分支提交历史记录和SHA编号复制您希望跳回的SHA提交的前7位数字-您只需使用前7个字符即可应用我将要描述的更改:9bfc696
现在输入此命令以重置代码-git reset 9bfc696
您的代码现在位于较早的提交点,并且更改已取消暂存-
Unstaged changes after reset:
M green-buttons.css
类似于上面的消息将出现在您的终端中
接下来,我们希望看到反映在当前工作目录/会话中的旧代码
键入此命令将您的工作目录恢复到repo的HEAD点-git checkout . HEAD
(在当前工作流的主点显示当前目录(
代码现在将引导回先前的提交,并删除那些未记录的更改重要的是,在执行此过程之前,您要明确不想保留任何代码
要采取更大的预防措施,并为您的恶意更改创建备份,请按照以下流程进行操作:
git checkout [working branch - this is the one we will run the deletion on]
git checkout -b [new backup branch name]
git checkout [working branch]
git log
git reset 9bfc696
git checkout . HEAD
请告诉我,如果你觉得有什么其他的东西应该添加或删除这个问答;这是一个很有风格的回答,我很想做出这些改变。