git 常用命令 mv rm checkout revert reset
关于上节讲的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的更多相关文章
- git revert 后悔了 还原修改前的版本 + git 常用命令
昨天手残 然后在GitHub for windows 上点了revert 然后就给重置了 更手残的是又给同步了 . 但是 GitHub 会保留之前的版本 . 只要删掉本次修改就可. 解决方案: g ...
- Git常用命令总结
Git常用命令总结 git init 在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹. git clone ...
- git常用命令2
一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...
- 总结自己的Git常用命令
总结自己的Git常用命令 使用git也有一段时间了,把自己常用的命令用自己的描述记录起来,方便自己备忘也方便其他人参考. 目录: 最基本的命令: git clone 拷贝并跟踪远程的master分支. ...
- Git常用命令清单笔记
git github 小弟调调 2015年01月12日发布 赞 | 6收藏 | 45 5k 次浏览 这里是我的笔记,记录一些git常用和一些记不住的命令,这个笔记原本是基于 颜海镜的文章增加 ...
- Git 常用命令速查表(图文+表格)
一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...
- 转 Git 常用命令大全
一. Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch ...
- git常用命令3
一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态git commit 提交git branch -a 查看所有的分支git branch -r 查看 ...
- Git 常用命令速查表(图文+表格)【转】
转自:http://www.jb51.net/article/55442.htm 一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git comm ...
随机推荐
- strtotime 获取当月最后一天的日期
strtotime('last day of this month', $timestamp);
- CookieUtil.java
package util; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.n ...
- python 包管理工具 pip 的配置
近几年来,python的包管理系统pip 越来越完善, 尤其是对于 windows场景下,pip大大改善了python的易用性. https://www.cnblogs.com/yvivid/p/pi ...
- 在Python中检测*可用* CPU数量的便携方式
根据这个问题和答案 - Python multiprocessing.cpu_count()在4核Nvidia Jetson TK1上返回'1' - Python multiprocessing.cp ...
- Python之循环遍历
range() 快输生成序列 利用 items()提取字典元素 在Python里,for循环后面是可以接一个else 的,在for循环正常结束时候,else 语句会被执行(while循环也是一样哦), ...
- 【记录】eclipse / STS 设置注释模版格式/导入注释模版格式
设置注释模板的入口:Window->Preference->Java->Code Style->Code Template 将如下保存在新创建的xml文件中,导入进去 < ...
- 关于KiCAD
关于KiCAD 使用背景 一直以来公司都在用AD作为EDA软件,但是最近公司频繁收到律师函,所以决定找一款开源的软件来代替AD,目前市场上开源的只找到了KiCAD和Easy EDA(中文版立创EDA) ...
- shell script 二 判断符号【】 shift 偏移量 if then fi
判断符号[]类似于test.但是[]有通配符及正则表达式,为了区分,利用[]来做判断时,前后都需要加空格来区分.又一个坑 [ -z "$HOME" ];echo $? 例: 1 r ...
- 前端学习(十八)js的json(笔记)
json: 数组: 1.有序 var arr=[2,1,3,4] arr[0]; 2.有length 3.普通for 4.下标数字 5.添加删除 splice json: ...
- Vuex白话教程第六讲:Vuex的管理员Module(实战篇)
写在前面 这一讲是 Vuex 基础篇的最后一讲,也是最为复杂的一讲.如果按照官方来的话,对于新手可能有点难以接受,所以想了下,决定干脆多花点时间,用一个简单的例子来讲解,顺便也复习一下之前的知识点. ...