git学习笔记2-一些很重要又很初级的命令和技巧(霜之小刀)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lihn1987/article/details/78998213

git学习笔记2-一些很重要又很初级的命令和技巧(霜之小刀)

欢迎转载和引用,若有问题请联系
若有疑问,请联系
Email : [email protected]
QQ:2279557541


本文大量参考了《精通git》 第2版

1、更简洁的查看git文件的状态

大部分情况下使用git status查看文件状态时打印的信息过于复杂,不够简洁,这是我们应该使用
git status -s
可以得到如下结果

 M a.txt
MM b.txt
A  c.txt
M  d.txt
?? e.txt

这条命令中的

 M
MM
A 
M  
?? 

是用来表示文件的状态,下面我就介绍下各个字母的含义
这些含义其实是和svn差不多的
M代表已修改
A代表已添加
?表示未跟踪
而我们看到命令中文件的状态其实是分成2列的,其中左侧表示是否已暂存,右侧表示是否已修改。这样我们列出的状态可以解释为

 M //未暂存,已修改
MM //修改后暂存了,但是又修改了
A  //新添加
M  //修改后暂存了
?? //未添加到版本库

2、忽略我们不关心的文件

使用git的时候,有些文件的状态我们是不关心的,比如一些编译的时候生成的临时文件.a,.o之类的,一些构建目录下的文件啊,我们其实是不想提交到版本库的,但是如果每次git status -s的时候都被列出来,我们势必很烦,这里就说说如何忽略这些文件。
在我们clone的根目录下有一个叫.gitignore的文件
下面列一堆例子

*.a              #忽略所有的.a类型文件
!lib.a           #任然跟踪lib.a即使上一行命令说忽略所有.a文件
/TODO            #忽略当前目录的TODO文件
build/           #忽略build目录下的所有文件
doc/*.txt        #忽略doc目录下的所有txt文件(不包括子目录)
doc/**/*.pdf     #忽略doc目录下的所有txt文件,包括子目录

3、查看未暂存文件的同未修改时的区别

这个说起来就简单啦
直接
git diff
可以看到

diff --git a/README.md b/README.md
index d6459e0..0042c20 100644
--- a/README.md
+++ b/README.md
@@ -1 +1 @@
-xxx
+mmmmmmmm
diff --git a/ddd b/ddd
index c5b9640..c554554 100644
--- a/ddd
+++ b/ddd
@@ -1 +1 @@
-aaa\nbbb\n
+uuuu

各种++++—-@@,要看懂其实不难,
但是。。。
没有直观的感受,让我这种鸡有些迷茫。。。
于是!我想到了图形化的对比软件!
这里就引出了下一条命令

git difftool

他就会使用图形化的软件进行对比(虽然也是在终端里),这个就要比直接git diff貌似直观一点。不过这里还有几个缺陷,没gui得我还是用不惯,一个一个的对比我觉得太慢,不方便。。。
于是我这里隆重介绍下meld!

4、用更直观的方式查看区别–meld

首先,安装meld

brew install Caskroom/cask/xquartz
brew install pygtk
brew cask install caskroom/cask/meld

然后安装diffall工具
https://github.com/thenigan/git-diffall
下载下来,直接运行。
然后配置git

git config --global diff.tool meld #这一行必须配置difftool对应的工具
git config –global alias.diffall git-diffall#这一行配置一条新命令 diffall

然后使用git difftool将使用meld进行文件的一一对比。
使用git diffall 将使用meld进行所有更改的对比(好用的一逼!!!)

5、查看已暂存的文件同上一次提交的区别

这个就简单了,我们前面介绍了三种查看未暂存的区别的命令

git diff
git difftool
git diffall

那么查看已暂存的区别的命令,简单了,就是加–cached

git diff --cached
git difftool --cached
git diffall --cached

6、不使用暂存区

有些人觉得暂存区这个东东意义不大,懒得用,就直接提交就好了,这也是有办法的
就是

git commit -a -m "提交日志"

就会将所有已跟踪的文件添加到暂存区,然后直接提交

7、删除git跟踪的文件

git rm xxx.xxx

8、移动git跟踪的文件

git mv xxx.xx xxx.xx

9、查看提交历史

git log -n
这里要解释下,如果直接使用git log时将会显示所有的历史日志
如果使用git log -3就会显示最近的3条日志,这个就是前面说的-n的意思

猜你喜欢

转载自blog.csdn.net/lihn1987/article/details/78998213