文章摘自:http://gitbook.liuhui998.com/index.html
Git的撤消操作 - 重置, 签出 和 撤消
Git提供了多种修复你开发过程中的错误的方法. 方法的选择取决于你的情况: 包含有错误的文件是否提交了(commited); 如果你把它已经提交了, 那么你是否把有错误的提交已与其它人共享这也很重要.
修复未提交文件中的错误(重置)
如果你现在的工作目录(work tree)里搞的一团乱麻, 但是你现在还没有把它们提交; 你可以通过下面的命令, 让工作目录回到上次提交时的状态(last committed state):
$ git reset --hard HEAD
这条命令会把你工作目录中所有未提交的内容清空(当然这不包括未置于版控制下的文件 untracked files). 从另一种角度来说, 这会让"git diff" 和"git diff --cached"命令的显示法都变为空.
如果你只是要恢复一个文件,如"hello.rb", 你就要使用 git checkout
$ git checkout -- hello.rb
这条命令把hello.rb从HEAD中签出并且把它恢复成未修改时的样子.
译者:上面二行和原文有出入,经验证是原文有误,所以我据正确的重写了.
修复已提交文件中的错误
如果你已经做了一个提交(commit),但是你马上后悔了, 这里有两种截然不同的方法去处理这个问题:
- 创建一个新的提交(commit), 在新的提交里撤消老的提交所作的修改. 这种作法在你已经把代码发布的情况下十分正确.
2 你也可以去修改你的老提交(old commit). 但是如果你已经把代码发布了,那么千万别这么做; git不会处理项目的历史会改变的情况,如果一个分支的历史被改变了那以后就不能正常的合并.
创建新提交来修复错误
创建一个新的,撤消(revert)了前期修改的提交(commit)是很容易的; 只要把出错的提交(commit)的名字(reference)做为参数传给命令: git revert就可以了; 下面这条命令就演示了如何撤消最近的一个提交:
$ git revert HEAD
这样就创建了一个撤消了上次提交(HEAD)的新提交, 你就有机会来修改新提交(new commit)里的提交注释信息.
你也可撤消更早期的修改, 下面这条命令就是撤消“上上次”(next-to-last)的提交:
$ git revert HEAD^
在这种情况下,git尝试去撤消老的提交,然后留下完整的老提交前的版本. 如果你最近的修改和要撤消的修改有重叠(overlap),那么就会被要求手工解决冲突(conflicts), 就像解决合并(merge)时出现的冲突一样.
译者注: git revert 其实不会直接创建一个提交(commit), 把撤消后的文件内容放到索引(index)里,你需要再执行git commit命令,它们才会成为真正的提交(commit).
修改提交来修复错误
如果你刚刚做了某个提交(commit), 但是你又想马上修改这个提交; git commit 现在支持一个叫--amend的参数,它能让你修改刚才的这个提交(HEAD commit). 这项机制能让你在代码发布前,添加一些新的文件或是修改你的提交注释(commit message).
如果你在老提交(older commit)里发现一个错误, 但是现在还没有发布到代码服务器上. 你可以使用 git rebase命令的交互模式, "git rebase -i"会提示你在编辑中做相关的修改. 这样其实就是让你在rebase的过程来修改提交.
更多git操作参考:http://git.oschina.net/progit/
相关推荐
IDEA 通过 Git 回滚到某个提交节点或某个版本的操作方法 IDEA 是一款功能强大且流行的集成开发环境,而 Git 是一个开源的分布式版本控制系统。通过 Git,开发人员可以更好地管理项目代码的版本历史记录。本文将详细...
Git 错误回滚工具对配置文件误删的解决方案 Git 是一个功能强大的版本控制系统,可以帮助开发者追踪代码的变化历史,并在出现问题时进行回滚。下面是 Git 的一些基本概念和使用方法: 1. Git 安装:使用 DNF 包...
1、仅在工作区修改的文件 2、已添加到暂存区的文件 3、已经commit,但是没有push 3、已经push到远端
大家在日常开发中,经常会遇到需要将代码切回到之前的某个版本的情况,有可能是需要将代码回滚,也有可能需要查看之前的某个实现。...下面通过这篇文章来学习下Git中的回滚操作,有需要的可以参考借鉴。
git 删除分支和回滚的实例详解 【git 删除本地分支】 git branch -D br 【git 删除远程分支】 git push origin :br (origin 后面有空格) git代码库回滚: 指的是将代码库某分支退回到以前的某个commit id 【本地...
在这种情况下,可以使用`git revert`逐一回滚相关提交,然后用`git cherry-pick`恢复不需要回滚的提交。 示例: ```shell git revert G git revert F -m 1 git revert D..E git cherry-pick C git cherry-...
本文将会介绍如何利用PyCharm来连接Github,同时演示Github上的仓库新建、更新,以及代码回滚。 在这之前,需要在你的电脑上安装Git,PyCharm。本文演示的系统为Windows系统,首先我们先从设置讲起。 PyCharm...
Git代码回滚实践环境搭建环境试验idea示例代码回滚回滚条件创建回滚目标具体操作github地址 环境搭建 1.github上新建仓库:https://github.com/ydfind/git-test.git 2.idea从git新建两个项目,并修改提交代码的...
这意味着,如果使用git reset回滚到一个历史提交,那么从回滚点到当前的所有提交记录将会消失,不再显示在仓库的历史记录中。而git revert则用来撤销之前的某个提交,它会创建一个新的提交来实现撤销,这样原先的...
在Git版本控制中,有时我们需要将代码回退到某个历史版本,特别是在IDEA(IntelliJ IDEA)这样的集成开发环境中,这一操作变得尤为重要。本文详细介绍了两种在IDEA中回退Git分支到指定历史版本的方法。 1. **Revert...
Git回滚可以将代码回滚到上一个版本,或者回滚到指定版本。使用命令`git reset`可以将代码回滚到上一个版本,使用命令`git reset --hard <commit_id>`可以将代码回滚到指定版本。 撤销修改 撤销修改可以将工作区...
如果更新后发现兼容性问题或错误,可以使用Git回滚到之前的代码状态,或者通过Composer恢复到旧版本的依赖。 7. **持续集成/持续部署(CI/CD)**: 在大型项目中,通常会使用CI/CD工具如Jenkins、GitLab CI/CD或...
### Git客户端(TortoiseGit)基本使用详解 #### 一、环境安装 1. **下载地址**: - [Git最新版下载](https://gitforwindows.org/) - [TortoiseGit客户端](https://tortoisegit.org/download/) 2. **安装步骤**:...
9. **版本回溯**:Git的版本历史查询功能强大,`git log`显示提交历史,`git revert`或`git reset`可以回滚到特定版本。 10. **标签管理**:`git tag`命令用于创建和管理标签,常用于标记重要的里程碑或版本。 ...
版本控制系统是用于跟踪文件或项目更改的工具,使用户可以随时回滚到之前的任何版本。这对于团队合作和项目维护至关重要,因为它记录了每个更改及其作者,便于问题排查和协作。 Git的核心特性包括: 1. 分布式:与...
只能通过api转发来间接和外部交互学习方式从第二课开始,每次git commit的备注都是当前课程的名称,如果想要详细了解代码变迁的过程,可以通过git回滚到相应的版本建议创建两个项目,一个是当前这个项目,一个是练习...
它允许开发者跟踪代码的修改历史,协作开发,以及方便地回滚到之前的代码状态。Git-2.19-for-windows.exe是Git的最新Windows版安装包,包含了Git的所有核心功能,包括命令行工具和集成的shell。 Git的核心特性包括...
Git还支持设置用户信息、解决冲突、回滚更改等多种高级操作,这些都是高效Git工作流程的重要组成部分。 总之,Git是软件开发中不可或缺的工具,通过学习和熟练掌握Git的使用,可以提高团队协作效率,保证代码的质量...