如何将项目重置回早期代码并覆盖本地repo上的现有更改



场景:我添加了一块代码,它导致我的网站上所有按钮元素的所有背景都变为绿色。我对所使用的方法不满意,希望完全删除代码,这样我就可以从这个分支上应用这个更改之前开始,并在同一分支上使用另一种方法(回溯(来实现一种更好的针对按钮的方法。

希望完全删除代码

要回溯,您有两个选择。首先,找到(使用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 

请告诉我,如果你觉得有什么其他的东西应该添加或删除这个问答;这是一个很有风格的回答,我很想做出这些改变。

最新更新