一个git学习教程。 url: http://progit.org/book/zh/ch2-4.html
截取一部分已备需要
撤消操作
任何时候,你都有可能需要撤消刚才所做的某些操作。接下来,我们会介绍一些基本的撤消操作相关的命令。请注意,有些操作并不总是可以撤消的,所以请务必谨慎小心,一旦失误,就有可能丢失部分工作成果。
修改最后一次提交
有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了。想要撤消刚才的提交操作,可以使用 --amend
选项重新提交:
$ git commit --amend
此命令将使用当前的暂存区域快照提交。如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会重新编辑提交说明,而所提交的文件快照和之前的一样。
启动文本编辑器后,会看到上次提交时的说明,编辑它确认没问题后保存退出,就会使用新的提交说明覆盖刚才失误的提交。
如果刚才提交时忘了暂存某些修改,可以先补上暂存操作,然后再运行 --amend
提交:
$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend
上面的三条命令最终得到一个提交,第二个提交命令修正了第一个的提交内容。
取消已经暂存的文件
接下来的两个小节将演示如何取消暂存区域中的文件,以及如何取消工作目录中已修改的文件。不用担心,查看文件状态的时候就提示了该如何撤消,所以不需要死记硬背。来看下面的例子,有两个修改过的文件,我们想要分开提交,但不小心用 git add *
全加到了暂存区域。该如何撤消暂存其中的一个文件呢?git status
命令的输出会告诉你怎么做:
$ git add .
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: README.txt
# modified: benchmarks.rb
#
就在 “Changes to be committed” 下面,括号中有提示,可以使用 git reset HEAD <file>...
的方式取消暂存。好吧,我们来试试取消暂存 benchmarks.rb 文件:
$ git reset HEAD benchmarks.rb
benchmarks.rb: locally modified
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: README.txt
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: benchmarks.rb
#
这条命令看起来有些古怪,先别管,能用就行。现在 benchmarks.rb 文件又回到了之前已修改未暂存的状态。
取消对文件的修改
如果觉得刚才对 benchmarks.rb 的修改完全没有必要,该如何取消修改,回到之前的状态(也就是修改之前的版本)呢?git status
同样提示了具体的撤消方法,接着上面的例子,现在未暂存区域看起来像这样:
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: benchmarks.rb
#
在第二个括号中,我们看到了抛弃文件修改的命令(至少在 Git 1.6.1 以及更高版本中会这样提示,如果你还在用老版本,我们强烈建议你升级,以获取最佳的用户体验),让我们试试看:
$ git checkout -- benchmarks.rb
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: README.txt
#
可以看到,该文件已经恢复到修改前的版本。你可能已经意识到了,这条命令有些危险,所有对文件的修改都没有了,因为我们刚刚把之前版本的文件复制过来重写了此文件。所以在用这条命令前,请务必确定真的不再需要保留刚才的修改。如果只是想回退版本,同时保留刚才的修改以便将来继续工作,可以用下章介绍的 stashing 和分支来处理,应该会更好些。
记住,任何已经提交到 Git 的都可以被恢复。即便在已经删除的分支中的提交,或者用 --amend
重新改写的提交,都可以被恢复(关于数据恢复的内容见第九章)。所以,你可能失去的数据,仅限于没有提交过的,对 Git 来说它们就像从未存在过一样。
分享到:
相关推荐
因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助...
1. 类型: 文字版pdf,代码和内容可直接复制,非图片扫描版。 2. 简介: 这是官方git教程,资源压缩包里自带中文版和...3. 内容: 这是初学者学习git的最好教程,主要讲解了git的原理,以及git命令的使用。非常地amazing!
### 最好的Git中文教程知识点概览 #### 一、Git简介与重要性 - **Git定义**:Git是一种分布式版本控制系统,由Linus Torvalds于2005年创建,旨在更好地管理Linux内核的开发工作。它通过提供一种高效、可靠的方式来...
这篇“Git图文教程中文教程”正是为了帮助初学者快速掌握Git的基本操作和核心概念而设计的。下面,我们将深入探讨Git的一些关键知识点。 1. **安装Git**: 在Windows、MacOS或Linux上安装Git是开始学习的第一步。...
1. 分布式:每个开发者的本地机器都有一个完整的仓库副本,可以在本地进行提交和分支操作,无需网络连接。这提高了工作效率并减少了对中央服务器的依赖。 2. 强大的分支和合并:Git的分支机制非常轻量级,使得开发者...
本“Git视频教程”将深入介绍Git的基本概念、命令行操作以及高级用法,帮助初学者和有一定经验的用户更好地理解和应用Git。 首先,Git的核心概念包括仓库(Repository)、提交(Commit)、分支(Branch)、合并...
教程的“起步”部分介绍了版本控制系统的重要性,Git的历史以及它是如何从一个简单的Linux内核版本控制系统发展成为今天这样广泛的使用。接着,“Git基础”部分详细讲解了如何开始使用Git,包括如何获取Git仓库、...
Git 是一个功能强大且灵活的版本控制系统,能够帮助开发者更好地管理代码、协作开发和版本控制。在这篇教程中,我们学习了 Git 的安装、配置、基本命令、分支管理和 stash 命令的使用。此外,我们还学习了 ...
6. 回退与恢复:教程提到了版本回退的概念,强调了如何利用git log来查看各个版本状态,以及如何通过git checkout加上commit ID来回退到任何一个历史状态。 7. Git的可视化界面(GUI):作者提到gitk–all这个GUI...
而Git的学习则需要理解其核心思想——每个版本都是对项目的一个快照,这样在多人协作时,可以有效地追踪和管理代码变化。 总的来说,这份“廖雪峰JavaScript+Git+教程”涵盖了Web开发中两个关键的工具,无论是初学...
Git 是一个分布式版本控制系统,能够记录每次文件的改动,并且允许多人协作编辑。以下是 Git 使用教程的知识点总结: 一、Git 简介 * Git 是什么?Git 是目前世界上最先进的分布式版本控制系统。 * Git 的特点:...
关于初学者的git教程,旨在为了更多的初学者能够掌握基本的git
因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助文档的,...
本教程旨在提供一个详尽的Git学习路径,帮助你系统掌握这一工具。 1. Git基础: - 安装Git:在不同的操作系统(Windows、macOS、Linux)上安装Git的方法。 - 配置环境:设置用户名和邮箱,以及自定义Git命令行的...
此命令用于在当前目录下初始化一个新的Git仓库。 #### 2. 添加文件到暂存区 ```bash git add ``` 使用`git add`命令可以将指定文件添加到暂存区,准备提交。 #### 3. 提交更改 ```bash git commit -m "commit ...
- **实用性强**: 教程中的每一个命令都是经过精心挑选的,确保学习者能够在实际工作中立即应用。 - **图文结合**: 文字描述配合图表展示,帮助读者更好地理解Git的概念和操作步骤。 - **视频辅助**: 除了文字和图片...
Git视频教程权威指南.txt 网盘永久链接 为方便Git 学习爱好者而上传
- **Git** 是一个开源的分布式版本控制系统,被广泛应用于软件开发和文档管理等领域。 - **版本控制** 的核心作用在于记录每一次变更的信息,包括版本号、文件名、作者、版本说明及时间戳等。这些信息对于跟踪项目...