轻松学习git:git后悔药(满足日常开发中各种恢复)

如题所述

在开发日常工作中,可能遇到如下需要解决的情况:

1. 完成 git commit xxx.java 后,若后悔提交,应如何撤销?

2. 一旦回滚版本后又想恢复,如何操作?

3. 执行了 git add *,但不希望提交配置文件,有何解决策略?

4. 文件尚未添加到暂存区,想恢复到修改前的状态,如何操作?

接下来,我们将深入解析这些场景:

假设你已经理解git的工作流程(如果还不熟悉,请参考我的文章:《码农曾阿牛:轻松学习Git:git初识》)。关键在于理解工作区、暂存区和版本库的定位,以便在操作时明确目标。

以文件“xxx的论文.docx”为例,假设已经多次提交。查看历史记录,通过 git log xxx的论文.docx,发现某个版本存在问题。

要回退到上一个版本(不包括硬重置,--hard、--soft 和 --mixed 选项),使用 git reset --soft HEAD^。如果想回退到上一百个版本,只需写成 git reset --soft HEAD~100。如果忘记了commit_id,可查看 git reflog 来找到对应的版本。

执行后,会看到提交历史中撤销了修改,文件内容恢复到上一个版本。

若回退后又想恢复,可以使用commit_id执行 git reset,不论是否是过去的版本。

对于不想提交的暂存区文件,比如配置文件,执行 git restore --staged 可将其从暂存区移出,避免在下次提交时包含。

文件尚未添加到暂存区,只需利用git的提示,执行 git restore 即可恢复到修改前状态。

总结来说,这篇文章解答了上述常见git操作中的“后悔药”使用方法。如果你在开发过程中遇到类似问题,应该知道如何应对。期待你的反馈和讨论,一起提升git使用技能。
温馨提示:内容为网友见解,仅供参考
无其他回答

轻松学习git:git后悔药(满足日常开发中各种恢复)
执行后,会看到提交历史中撤销了修改,文件内容恢复到上一个版本。若回退后又想恢复,可以使用commit_id执行 git reset,不论是否是过去的版本。对于不想提交的暂存区文件,比如配置文件,执行 git restore --staged 可将其从暂存区移出,避免在下次提交时包含。文件尚未添加到暂存区,只需利用git的提示...

git push -f 的后悔药
1. 使用命令git reflog show remotes\/ur_upstream\/ur_branch查看操作记录。请将ur_upstream替换成你设置的remote origin名称,将ur_branch替换成你的branch名称,执行后你会看到一系列的commit hash。2. 选择一个你需要的commit hash,将指令中的ur_commit_hash替换为你选择的commit hash,例如:git rese...

【学了就忘】Git后悔药 — 38.revert撤销(二)
通过以上对比可以发现, git reset 命令与 git revert 命令最大的差别就在于, git reset 命令会失去后面的提交,而 git revert 命令是通过反做的方式重新创建一个新的提交,而保留原有的提交。在企业里,应尽量使用 git revert 命令,能不用 git reset 命令尽量不用。

【学了就忘】Git后悔药 — 34.版本回退操作(三)
上面说了,使用 git reset --hard 命令回退,做了三个操作:我们现在来查看一下工作目录中的文件状态。可以看到工作目录中是非常干净的。所以若要恢复到回退之前的版本,只能使用 git reset --hard 命令回退。我们查看到, readme.txt 文件的内容已经完全恢复。

git 后悔药之 undo git commit
git commit 后,想把此次 commit 回滚, 使用:git add 前:执行下面命令 git add .git commit -m "Something test"git log git reset HEAD~git log refer: Undo a commit & redo

轻松学习Git:git基础<撤销提交,管理远程仓库,标签,别名>
轻松学习Git:git基础<撤销提交,管理远程仓库,标签,别名>在 Git 中,有时会需要撤回提交。这可以通过使用带有 --amend 选项的提交命令来实现,这会将暂存区中的文件提交。如果在上次提交后你没有做任何修改

轻松学习Git:合并分支与冲突解决
Git分支合并与冲突处理是日常开发中的重要环节。让我们深入了解这个关键操作:如何在Git中使用merge命令合并分支,以及如何解决合并过程中可能出现的冲突。首先,合并分支是通过命令行实现的,合并时会创建一个有两个父节点的特殊提交,表示将两个分支及其所有祖先纳入新版本。在实际开发中,通常会遇到这样的...

Git 不要只会 pull 和 push,试试这 5 条提高效率的命令
reset --soft 相当于后悔药,给你重新改过的机会。对于上面的场景,就可以再次修改重新提交,保持干净的 commit 记录。 以上说的是还未 push 的commit。对于已经 push 的 commit,也可以使用该命令,不过再次 push 时,由于远程分支和本地分支有差异,需要强制推送 git push -f 来覆盖被 reset 的 commit。 还有一点需...

全面理解Git
安装Git、创建仓库、关联远程仓库,都是Git的基本操作。在多人协作中,分支功能尤为关键,能让团队成员在各自的分支上工作,互不影响。而标签则如后悔药,方便版本回退。Git的命令库丰富多样,包括git blame、git status和git reflog等,日常使用已经足够,但深入学习还需不断积累和实践。后记:要想真正...

IoTStudio可视化搭建平台编辑历史功能的思考与探索
简介:在前端可视化搭建领域中“重做”和“撤销”这两个功能已经是标配中的标配,毕竟只要有用户行为的地方就可能会有出错,这两个功能无疑就是为用户提供了“后悔药”。目前有各种各样的可视化搭建平台,本文介绍IoTStudio可视化搭建平台在编辑历史功能上的设计与思考。一背景在前端可视化搭建领域中“重做”...

相似回答
大家正在搜