6 其他常用命令介绍
一些常用的命令,可以帮助我们快速排查问题
6.1 git log 命令
Git log代表我们提交过的信息记录,直接git log的话,输出信息不是很好,不方便查看,我们可以美化一下。
使用带参数的
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen (%cr) %C(bold blue)<%an>%Creset' --abbrev-commit –
执行失败
Google,换一个命令
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen (%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --"
执行如下:
$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen (%cr) %C(bold bl ue)<%an>%Creset' --abbrev-commit --" skyman@SKYMAN-CF7E3587 ~/manual56 (master)
然后执行简化命令git lg,效果如下图所示:
Git config –global –
Global是在全局中使用,当你关闭当前窗口,重新登录git bash的时候,再使用git lg也能看到带各种颜色的日志信息。
6.2 git diff 命令
查看文件修改记录
Git diff xxx.md这是查看单个文件的修改记录,如果想查看所有的文件修改记录,就直接执行git diff命令即可。如下图所示
$ git diff
6.3 git checkout 命令
进行还原操作,还原单个后面空格加文件名,否则就是还原所有已经修改过的文件。
$ git checkout 17.5.0.0.0.md
skyman@SKYMAN-CF7E3587 ~/manual56/docs/Chapter_17 (master)
$
看到执行git checkout xxx.md之后,已经显示跟上一次的giff结果不一样了。这表示checkout成功了。Git checkout除了回退功能外,也可以实现切换到另外一个分支的功能,命令: git checkout branchname。
6.4 git rm 命令
如果不小心commit了一个临时文件或者发现commit的文件已经不需要,我们也可以用git rm命令将他们删除掉。
$ git rm 17.5.0.0.0.md
这个命令不仅仅从git的控制里面删除,而且会从文件系统里面删除这个文件。
$ git rm 17.5.0.0.0.md – 执行报错如下:
rm 'docs/Chapter_17/17.5.0.0.0.md'
Deletion of directory 'docs/Chapter_17' failed. Should I try again? (y/n) y
Deletion of directory 'docs/Chapter_17' failed. Should I try again? (y/n) y
再次执行删除操作
$ git rm 17.5.0.0.0.md
fatal: pathspec 'docs/Chapter_17/17.5.0.0.0.md' did not match any files
看提示文件匹配不上了,ls下查看文件是否存在
$ ls 17.5.0.0.0.md
ls: 17.5.0.0.0.md: No such file or directory
#文件已经不存在了,可能是刚才在执行git rm xx.md的时候多按了几下回车键导致的。然后再去本地查看C:\Documents and Settings\...\Chapter_17\17.5.0.0.0.md,文件打开失败已经不存在了被删除了。
6.5 git rm –cached 命令
Git rm命令会删除本地文件,另外有的时候我们只是需要将已经提交的删除但是不想删除磁盘上的文件的话,那么可以加—cached参数来实现这个功能。
$ git status --查看文件不存在了,还需要重新建立一个测试md文件
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# deleted: 17.5.0.0.0.md
#
$ pwd #查看下路径
/c/Documents and Settings/…/Chapter_17
$ git add 17.5.0.0.0.md
fatal: pathspec 'docs/Chapter_17/17.5.0.0.0.md' did not match any files
#执行失败,执行add命令的时候必须保证文件存在,所以先vim创建此文件
$ vim 17.5.0.0.0.md
$ git add 17.5.0.0.0.md
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: 17.5.0.0.0.md
#
#OK,git add成功了
$ git commit -am "Test change 10"
[master 711231b] Test change 10
1 file changed, 1 insertion(+), 1 deletion(-)
#OK,commit到本地版本库成功了
$ git push origin master
Counting objects: 9, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 383 bytes, done.
Total 5 (delta 3), reused 0 (delta 0)
To git@github.com:mchdbagh/manual56.git
3e96f90..711231b master -> master
#push到romote远程master库成功了,去打开网址https://github.com/xxxxx/17.5.0.0.0.md,如下图所示,可以看到提交的文件以及内容:
开始执行git rm –cached xxx.md命令
$ git rm --cached 17.5.0.0.0.md
rm 'docs/Chapter_17/17.5.0.0.0.md'
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# deleted: 17.5.0.0.0.md
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# 17.5.0.0.0.md
# 绿色的表示已经删除了,Untracked files:表示文件没有被跟踪,cached删除成功了。
$ git add -A
$ git status
# On branch master
nothing to commit (working directory clean)
#然后去本地查看C:\Documents and Settings\...\Chapter_17\17.5.0.0.0.md,文件还存在。
6.6 git mv 命令
有的时候文件需要保留,保持文件的历史修改记录,我们可以用git mv old-file-name new-fine-name命令,这样既可以保证不被修改还能保证原来的历史记录,执行命令如下图所示:
$ git mv 17.5.0.0.0.md backup1_17.5.0.0.0.md
最后再推荐一个文章地址github通关攻略:http://fancyoung.com/blog/githug-cheat-sheet/。