关于上节讲的git add 时需要添加注释信息,也可以在git commit时再添加

laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git add UI.js laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git commit -m "添加UI.js"
[master 358cdac] 添加UI.js
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 UI.js laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git status
On branch master
nothing to commit, working tree clean

PS:关于注释信息, 因为一个项目往往由多个人协作完成,所以文件的提交和修改需要在注释信息里写清楚,否则会影响到项目的展开。

git log 命令查看commit的记录:

$ git log
commit 358cdace04c0eed4e4fab58a20070f5a7d01bb98
Author: LaoNiNi <laonivv@163.com>
Date: Tue May 30 11:03:37 2017 +0800 添加UI.js commit 04c94a894c0895e6565a02b9f9221b51e3ca7bf5
Author: LaoNiNi <laonivv@163.com>
Date: Tue May 30 10:44:49 2017 +0800 添加一个文件index.html laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git log --oneline
358cdac 添加UI.js
04c94a8 添加一个文件index.html

使用git mv 【old_filename】 【new_filename】修改的是暂存区的文件,不是工作区的,在工作区的文件可以直接用mv命令

$ ls
bb.css cc.css index.html UI.js laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git add cc.css laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage) new file: cc.css laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git mv cc.css dd.css laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage) new file: dd.css laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git commit -m "测试git mv"
[master 0f65134] 测试git mv
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dd.css laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git status
On branch master
nothing to commit, working tree clean

当已经添加到暂存区的文件,如果对应的工作区的文件被rm删除,有多种处理方法:1、在工作区创建个同名的文件,然后add到暂存区。2、使用 git rm 删除暂存区的这个文件。3、使用 git checkout恢复之前删除的文件(类似回滚).

$ vim abc

laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ ls
abc bb.css dd.css index.html UI.js laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ cat abc
fsdfsdfsdf laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed) abc nothing added to commit but untracked files present (use "git add" to track) laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git add abc
warning: LF will be replaced by CRLF in abc.
The file will have its original line endings in your working directory. laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage) new file: abc laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ rm abc laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage) new file: abc Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory) deleted: abc laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$

例子

$ git checkout -- abc

laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage) new file: abc laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ ls
abc bb.css dd.css index.html UI.js laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ cat abc
fsdfsdfsdf

git checkout --

补充:使用git rm删除暂存区的文件时,git会提示

(use --cached to keep the file, or -f to force removal)

--cached加上,只会删除暂存区的文件,本地文件不删除。-f则暂存区和本地都删除。

git rm也能删除分支上的文件(脱离版本库),删除过后可以在git status里查看到暂存区有这个被删除的文件,需要git commit后,文件就被删除了,使用git rm 时可以加上--cached,保留本地文件。

$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage) new file: abc laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git commit abc -m "commit abc"
[master 6d3b5d2] commit abc
file changed, insertion(+)
create mode abc laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git status
On branch master
nothing to commit, working tree clean laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git rm abc
rm 'abc' laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage) deleted: abc laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git commit -m "删除分支上的abc"
[master 180917b] 删除分支上的abc
file changed, deletion(-)
delete mode abc laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git status
On branch master
nothing to commit, working tree clean laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$

git rm 分支上的文件

使用git revert HEAD 可以从当前版本撤销返回到历史版本,通过git log查看历史版本,执行git revert HEAD默认返回到上一个版本,执行git revert HEAD^^ 返回到前两个版本,执行git revert HEAD~3 返回到前三个历史版本。

$ git revert HEAD
[master 664ed39] Revert "删除分支上的abc"
file changed, insertion(+)
create mode abc laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ ls
abc bb.css dd.css index.html UI.js laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ cat abc
fsdfsdfsdf

git revert HEAD

git revert HEAD命令的提交可以在提交日志里查到,而使用git reset HEAD命令在git log 里查询不到,所以git reset的执行有一定的危险(执行后不能恢复),但git reset只是把提交到分支的回撤到暂存区而不会删除文件。使用mixed参数,git reset HEAD --mixed 那么分支的文件就不是回撤到暂存区了,而是返回到工作区。使用hard参数,git reset HEAD --hard 就是硬重置,回撤的文件里在工作区也早不到了,所以不要轻易使用硬重置,可以使用软重置。HEAD(指针)可以用版本号来替代。

laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git log --oneline
664ed39 Revert "删除分支上的abc"
180917b 删除分支上的abc
6d3b5d2 commit abc
0f65134 测试git mv
822f28b 测试mv命令
358cdac 添加UI.js
04c94a8 添加一个文件index.html laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git reset 358cdac laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git log --oneline
358cdac 添加UI.js
04c94a8 添加一个文件index.html

git 常用命令 mv rm checkout revert reset的更多相关文章

  1. git revert 后悔了 还原修改前的版本 + git 常用命令

    昨天手残 然后在GitHub for windows 上点了revert 然后就给重置了 更手残的是又给同步了 .  但是 GitHub 会保留之前的版本 . 只要删掉本次修改就可. 解决方案:  g ...

  2. Git常用命令总结

    Git常用命令总结 git init      在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.   git clone ...

  3. git常用命令2

    一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...

  4. 总结自己的Git常用命令

    总结自己的Git常用命令 使用git也有一段时间了,把自己常用的命令用自己的描述记录起来,方便自己备忘也方便其他人参考. 目录: 最基本的命令: git clone 拷贝并跟踪远程的master分支. ...

  5. Git常用命令清单笔记

    git github 小弟调调 2015年01月12日发布 赞  |   6收藏  |  45 5k 次浏览 这里是我的笔记,记录一些git常用和一些记不住的命令,这个笔记原本是基于 颜海镜的文章增加 ...

  6. Git 常用命令速查表(图文+表格)

    一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...

  7. 转 Git 常用命令大全

    一. Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态  git commit 提交  git branch -a 查看所有的分支 git branch ...

  8. git常用命令3

    一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态git commit 提交git branch -a 查看所有的分支git branch -r 查看 ...

  9. Git 常用命令速查表(图文+表格)【转】

    转自:http://www.jb51.net/article/55442.htm 一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git comm ...

随机推荐

  1. Java对象finalize()方法

    Java提供了一种在对象即将被销毁时执行资源释放的方法.在Java中创建对象,但是不能销毁对象.JVM运行一个称为垃圾收集器的低优先级特殊任务来销毁不再引用的所有对象. 垃圾回收器给我们一个机会,在对 ...

  2. java 重新学习 (二)

    一.栈内存里的引用变量并未真正存储对象的成员变量,对象的成员变量数据实际存放在堆内存中,而引用变量只是指向该堆内存里的对象. 二.堆内存里的对象可以有多个引用,若果堆内存中没有变量指向该对象,程序无法 ...

  3. _cdecl 与 _stdcall 区别

    前段时间编程时遇到过这么一个问题,我写了一个DLL,把里面的一个函数导出来,然后再定义一个签名与其匹配的函数指针,动态地把这个DLL加载起来(LoadLibrary),得到函数指针后,一调用,结果报错 ...

  4. vue项目工具文件utils.js javascript常用工具类,javascript常用工具类,util.js

    vue项目工具文件utils.js :https://blog.csdn.net/Ajaxguan/article/details/79924249 javascript常用工具类,util.js : ...

  5. UVALive 4794 Sharing Chocolate

    Sharing Chocolate Chocolate in its many forms is enjoyed by millions of people around the world ever ...

  6. if (user?.Identity?.IsAuthenticated ?? false)这几个问号分别都代表啥意思?

    if (user?.Identity?.IsAuthenticated ?? false)这几个问号分别都代表啥意思? 0 悬赏园豆:5 [已解决问题] 浏览: 229次 解决于 2018-05-16 ...

  7. python之命名元组的好处

    collections.namedtuple() 命名元组的一个主要用途是将你的代码从下标操作中解脱出来举例使用 # 使用 from collections import namedtuple Sub ...

  8. cas4.2.7 集群服务搭建

    cas服务端集群,网上资料很多,无非就是session共享,ticket共享. 但是session共享是必须的吗?或者能实现集群吗? 实践: 1. ticket共享,直接上代码 package org ...

  9. termcap - 终端功能数据库

    描述 DESCRIPTION termcap 数据库是一个过时 (obsolete) 工具,用来描述以字符为单位的终端和打印机的功能.它之所以被保留,是为了兼容古老的程序:新程序应当使用 termin ...

  10. KiCAD层颜色修改

    KiCAD层颜色修改 KiCAD的PCB各层的颜色太过于暗淡,有时可能不适合操作者的习惯,尤其是铜层(布线层),这时候就需要去修改层的颜色,具体操作如下图:选择想要修改的层,双击左边颜色框框,进入之后 ...