Git命令的使用记录(二:撤销修改)

前言

前面已经写了一部分,下面接着来。

直接打开之前的工作空间,执行:


打开工作空间

1.工作区和缓存区。新建一个文件b.rtf放入上一章的gitlearn目录下,gitlearn就相当于工作区。执行:


$ git status

这时提示b.rtf从未被添加过。
执行:

    $ git add b.rtf

这时b.rtf会从工作区加入暂存区。执行:

    $ git commit -m "xxx"

一次性把暂存区所有的修改提交到分支。

2.管理修改。
git管理的不是文件,而是修改,每次修改后需要 add 再 commit ,如果没有add ,直接commit ,则该修改没有提交。

第一次修改->git add->第二次修改->git add->git commit。或者
第一次修改->第二次修改->git add->git commit

3.撤销工作区或暂存区修改。

     $git checkout -- b.rtf

回退到最近一次修改前的状态。

4.撤销暂存区的修改。

    $ git reset HEAD file

如果从暂存区提交到了版本库,就用上一节的版本回退

小结
git checkout -- file 丢弃工作区的修改
git reset HEAD file 丢弃暂存区的修改
如果提交到了版本库,就进行版本回退


5.一般情况直接在目录里删掉或者执行:

  $ rm b.rtf

这时候git知道你删除了文件,因此工作区和版本库就不一致了,git status命令会告诉你哪些文件被删除了。

* 如果确实要删除该文件,执行:

    $ git rm b.rtf
* 如果是误删的文件,因为版本库中还有,执行:

    $ git checkout -- b.rtf
与撤销修改一致

小结
$ git rm b.rtf 删除文件
$ git checkout -- file 撤销删除


6.删除git仓库中的文件,但保留工作区的。
我们想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。换句话说,仅是从跟踪清单中删除。比如一些大型日志文件或者一堆 .a 编译文件,不小心纳入仓库后,要移除跟踪但不删除文件,以便稍后在 .gitignore 文件中补上,用 --cached 选项即可:

    $ git rm --cached b.rtf

7.修改文件名称
如果在 Git 中重命名了某个文件,仓库中存储的元数据并不会体现出这是一次改名操作,要执行:

    $ git mv 文件名 文件名

小结
$ git rm --cached b.rtf 删除git仓库中的文件,但保留 工作区的
$ git mv 文件名 文件名 修改文件名称

附加:
$ git log -p -2 查看最近2次的历史记录
$ git log --stat 查看简要的增改行数统计
$ git log --pretty=oneline 将每个提交放在一行显示
$ git log --pretty=format:"%h -%an, %ar : %s" 自定义显示格式

列出常用的格式占位符写法及其代表的意义

格式占位符写法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,678评论 1 26
  • git作为时下最流行的代码管理工具,Git权威指南总结了十条喜欢Git的理由: 异地协同工作; 现场版本控制; 重...
    古斟布衣阅读 1,859评论 0 12
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,742评论 4 54
  • 成本是个体为满足自身需求而付出的体力、时间、金钱等各个要素的总和。需求与成本之间成正相关,需求越多、标准越高,成本...
    LiveFuture阅读 494评论 0 0
  • 这几天,假装生活的文章很火,好几个主流媒体都在讨论,如果不是朋友圈转发,我还真不知道在北京有那么多人觉得自己在假装...
    董太多事儿阅读 207评论 0 1