`
anke1460
  • 浏览: 43332 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

一个好的git学习教程

阅读更多

一个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教程by廖雪峰.pdf

    因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助...

    git官方教程(中文版和英文版)

    1. 类型: 文字版pdf,代码和内容可直接复制,非图片扫描版。 2. 简介: 这是官方git教程,资源压缩包里自带中文版和...3. 内容: 这是初学者学习git的最好教程,主要讲解了git的原理,以及git命令的使用。非常地amazing!

    最好的git中文教程.pdf

    ### 最好的Git中文教程知识点概览 #### 一、Git简介与重要性 - **Git定义**:Git是一种分布式版本控制系统,由Linus Torvalds于2005年创建,旨在更好地管理Linux内核的开发工作。它通过提供一种高效、可靠的方式来...

    git图文教程中文教程

    这篇“Git图文教程中文教程”正是为了帮助初学者快速掌握Git的基本操作和核心概念而设计的。下面,我们将深入探讨Git的一些关键知识点。 1. **安装Git**: 在Windows、MacOS或Linux上安装Git是开始学习的第一步。...

    git和svn学习入门教程

    1. 分布式:每个开发者的本地机器都有一个完整的仓库副本,可以在本地进行提交和分支操作,无需网络连接。这提高了工作效率并减少了对中央服务器的依赖。 2. 强大的分支和合并:Git的分支机制非常轻量级,使得开发者...

    GIT视频教程

    本“Git视频教程”将深入介绍Git的基本概念、命令行操作以及高级用法,帮助初学者和有一定经验的用户更好地理解和应用Git。 首先,Git的核心概念包括仓库(Repository)、提交(Commit)、分支(Branch)、合并...

    progit.pdf--git学习教程

    教程的“起步”部分介绍了版本控制系统的重要性,Git的历史以及它是如何从一个简单的Linux内核版本控制系统发展成为今天这样广泛的使用。接着,“Git基础”部分详细讲解了如何开始使用Git,包括如何获取Git仓库、...

    git培训教程 .docx

    Git 是一个功能强大且灵活的版本控制系统,能够帮助开发者更好地管理代码、协作开发和版本控制。在这篇教程中,我们学习了 Git 的安装、配置、基本命令、分支管理和 stash 命令的使用。此外,我们还学习了 ...

    git菜鸟教程.pdf

    6. 回退与恢复:教程提到了版本回退的概念,强调了如何利用git log来查看各个版本状态,以及如何通过git checkout加上commit ID来回退到任何一个历史状态。 7. Git的可视化界面(GUI):作者提到gitk–all这个GUI...

    廖雪峰JavaScript+Git+教程

    而Git的学习则需要理解其核心思想——每个版本都是对项目的一个快照,这样在多人协作时,可以有效地追踪和管理代码变化。 总的来说,这份“廖雪峰JavaScript+Git+教程”涵盖了Web开发中两个关键的工具,无论是初学...

    Git使用教程

    Git 是一个分布式版本控制系统,能够记录每次文件的改动,并且允许多人协作编辑。以下是 Git 使用教程的知识点总结: 一、Git 简介 * Git 是什么?Git 是目前世界上最先进的分布式版本控制系统。 * Git 的特点:...

    关于 Git初学者的 教程

    关于初学者的git教程,旨在为了更多的初学者能够掌握基本的git

    git通俗易懂教程

    因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助文档的,...

    最完整的git教程.zip

    本教程旨在提供一个详尽的Git学习路径,帮助你系统掌握这一工具。 1. Git基础: - 安装Git:在不同的操作系统(Windows、macOS、Linux)上安装Git的方法。 - 配置环境:设置用户名和邮箱,以及自定义Git命令行的...

    2018最新git视频教程

    此命令用于在当前目录下初始化一个新的Git仓库。 #### 2. 添加文件到暂存区 ```bash git add ``` 使用`git add`命令可以将指定文件添加到暂存区,准备提交。 #### 3. 提交更改 ```bash git commit -m "commit ...

    廖雪峰-Git-教程-PDF版

    - **实用性强**: 教程中的每一个命令都是经过精心挑选的,确保学习者能够在实际工作中立即应用。 - **图文结合**: 文字描述配合图表展示,帮助读者更好地理解Git的概念和操作步骤。 - **视频辅助**: 除了文字和图片...

    Git视频教程权威指南.txt

    Git视频教程权威指南.txt 网盘永久链接 为方便Git 学习爱好者而上传

    Git 廖雪峰教程

    - **Git** 是一个开源的分布式版本控制系统,被广泛应用于软件开发和文档管理等领域。 - **版本控制** 的核心作用在于记录每一次变更的信息,包括版本号、文件名、作者、版本说明及时间戳等。这些信息对于跟踪项目...

Global site tag (gtag.js) - Google Analytics