`

git回滚

    博客分类:
  • git
阅读更多

 

 文章摘自: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),但是你马上后悔了, 这里有两种截然不同的方法去处理这个问题:

  1. 创建一个新的提交(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 回滚到某个提交节点或某个版本的操作方法 IDEA 是一款功能强大且流行的集成开发环境,而 Git 是一个开源的分布式版本控制系统。通过 Git,开发人员可以更好地管理项目代码的版本历史记录。本文将详细...

    git错误回滚工具,对配置文件误删有大作用

    Git 错误回滚工具对配置文件误删的解决方案 Git 是一个功能强大的版本控制系统,可以帮助开发者追踪代码的变化历史,并在出现问题时进行回滚。下面是 Git 的一些基本概念和使用方法: 1. Git 安装:使用 DNF 包...

    jakkypan#trivia#git回滚总汇1

    1、仅在工作区修改的文件 2、已添加到暂存区的文件 3、已经commit,但是没有push 3、已经push到远端

    简单谈谈Git中的回滚操作

    大家在日常开发中,经常会遇到需要将代码切回到之前的某个版本的情况,有可能是需要将代码回滚,也有可能需要查看之前的某个实现。...下面通过这篇文章来学习下Git中的回滚操作,有需要的可以参考借鉴。

    git 删除分支和回滚的实例详解

    git 删除分支和回滚的实例详解 【git 删除本地分支】 git branch -D br 【git 删除远程分支】 git push origin :br (origin 后面有空格) git代码库回滚: 指的是将代码库某分支退回到以前的某个commit id 【本地...

    如何使用Git优雅的回滚实现

    在这种情况下,可以使用`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(仓库新建、更新,代码回滚)

    本文将会介绍如何利用PyCharm来连接Github,同时演示Github上的仓库新建、更新,以及代码回滚。   在这之前,需要在你的电脑上安装Git,PyCharm。本文演示的系统为Windows系统,首先我们先从设置讲起。 PyCharm...

    Git代码回滚实践

    Git代码回滚实践环境搭建环境试验idea示例代码回滚回滚条件创建回滚目标具体操作github地址 环境搭建 1.github上新建仓库:https://github.com/ydfind/git-test.git 2.idea从git新建两个项目,并修改提交代码的...

    Git使用小技巧之回滚与撤销详解

    这意味着,如果使用git reset回滚到一个历史提交,那么从回滚点到当前的所有提交记录将会消失,不再显示在仓库的历史记录中。而git revert则用来撤销之前的某个提交,它会创建一个新的提交来实现撤销,这样原先的...

    详解IDEA git分支回退指定的历史版本

    在Git版本控制中,有时我们需要将代码回退到某个历史版本,特别是在IDEA(IntelliJ IDEA)这样的集成开发环境中,这一操作变得尤为重要。本文详细介绍了两种在IDEA中回退Git分支到指定历史版本的方法。 1. **Revert...

    Git与GitHub的基本使用

    Git回滚可以将代码回滚到上一个版本,或者回滚到指定版本。使用命令`git reset`可以将代码回滚到上一个版本,使用命令`git reset --hard <commit_id>`可以将代码回滚到指定版本。 撤销修改 撤销修改可以将工作区...

    Laravel开发-laravel-update

    如果更新后发现兼容性问题或错误,可以使用Git回滚到之前的代码状态,或者通过Composer恢复到旧版本的依赖。 7. **持续集成/持续部署(CI/CD)**: 在大型项目中,通常会使用CI/CD工具如Jenkins、GitLab CI/CD或...

    Git客户端(TortoiseGit)基本使用详解

    ### Git客户端(TortoiseGit)基本使用详解 #### 一、环境安装 1. **下载地址**: - [Git最新版下载](https://gitforwindows.org/) - [TortoiseGit客户端](https://tortoisegit.org/download/) 2. **安装步骤**:...

    git安装包git-2.34.0-64-bit.rar

    9. **版本回溯**:Git的版本历史查询功能强大,`git log`显示提交历史,`git revert`或`git reset`可以回滚到特定版本。 10. **标签管理**:`git tag`命令用于创建和管理标签,常用于标记重要的里程碑或版本。 ...

    GIT 压缩包 适用于压缩包式安装git

    版本控制系统是用于跟踪文件或项目更改的工具,使用户可以随时回滚到之前的任何版本。这对于团队合作和项目维护至关重要,因为它记录了每个更改及其作者,便于问题排查和协作。 Git的核心特性包括: 1. 分布式:与...

    sydemo_project:教程项目

    只能通过api转发来间接和外部交互学习方式从第二课开始,每次git commit的备注都是当前课程的名称,如果想要详细了解代码变迁的过程,可以通过git回滚到相应的版本建议创建两个项目,一个是当前这个项目,一个是练习...

    Git 和 GitDesktop For Windows

    它允许开发者跟踪代码的修改历史,协作开发,以及方便地回滚到之前的代码状态。Git-2.19-for-windows.exe是Git的最新Windows版安装包,包含了Git的所有核心功能,包括命令行工具和集成的shell。 Git的核心特性包括...

    git工具下载更新代码

    Git还支持设置用户信息、解决冲突、回滚更改等多种高级操作,这些都是高效Git工作流程的重要组成部分。 总之,Git是软件开发中不可或缺的工具,通过学习和熟练掌握Git的使用,可以提高团队协作效率,保证代码的质量...

Global site tag (gtag.js) - Google Analytics