首页投稿(暂停使用,暂停投稿)iOS Developer

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

2016-07-08  本文已影响331人  爱偷懒的万万

前言

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

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


打开工作空间

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" 自定义显示格式

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

格式占位符写法
上一篇 下一篇

猜你喜欢

热点阅读