首先声明,本书的知识总结来源于《完全学会Git,GitHub,Git Server的24堂课》一书,如有任何疑问请参考原书内容查证,我这里更多的只是记录,也会尽量结合自己的学习和使用经验加一些自己的体会。Git安装请移步至Git中文官网或者百度一下
本篇的内容主要是讲解Git配置相关的指令集,主要包含一些配置的查看,配置,删除以及一些工具的配置。主要指令包括
- (1)git config (--global/--system) -l:查看(账户级/系统级)所有配置参数
- (2)git config (--global/--system) config_key :查看(账户级/系统级)特定配置项
- (3)git config (--global/--system) config_key config_value:配置(账户级/系统级)特定配置项的值
- (4)git config (--global/--system) --unset config_key :删除(账户级/系统级)特定配置项
- (5)git config (--global/--system) alias.name 'orignal git cmd':配置(账户级/系统级)指定git命令别称
- (6)git config (--global/--system) --unset alias.name:删除(账户级/系统级)git命令别称
- (7)git config (--global/--system) core.editor editorPath:配置commit信息编辑器,是(3)的一种特殊情况
- (8)git diff:查看文件的差异(已经添加到仓库后者所有系统的文件与当前文件夹中的文件)
- (9)git config (--global/--system) diff.tool:配置文件差异比较工具
在详细介绍之前,先简单说明一下,Git中的配置有三个级别:
关于的他们的优先级,可以理解为变量的作用域就比较简单了。
2.1 git config (--global/--system) -l:查看(账户级/系统级)所有配置参数
该指令主要用于查看已有的配置信息,具体的演示如下:
2.2 git config (--global/--system) config_key :查看(账户级/系统级)特定配置项
上面是查看所有配置项,但是多数情况下,我们需要查看特定的配置项内容,比如查看当前的配置的用户名和email地址:
2.3 git config (--global/--system) config_key config_value:配置(账户级/系统级)特定配置项的值
配置如果不能自己配置,那配置文件岂不是意义不大了,上面都是查看配置,下面就来看看如何设置一个特定配置项参数,具体演示;我们把仓库级的用户名和用户级的用户名都修改为"wanghy":
2.4 git config (--global/--system) --unset config_key :删除(账户级/系统级)特定配置项
如果你觉得某个配置项不再需要了,那么我们可以通过如上指令进行删除;下面我们接着上面的操作先把用户名配置删除(包括仓库级和用户级),然后提交一次commit看看用户信息:
2.5 git config (--global/--system) alias.name 'orignal git cmd':配置(账户级/系统级)指定git命令别称
为命令配置别名,就好比是AS中的Template代码模板配置一样,就是为了简化操作而已,但是不建议随便改动,尤其是在用户级和系统级最好不要随意添加,如果想在当前库中添加,一定要注意自己建立一个对应关系表格,以防遗忘了。比如,下面,我把
commit 改为别名为up的指令。
2.6 git config (--global/--system) --unset alias.name:删除(账户级/系统级)git命令别称
这个本质上和2.3一样的,这里我们赶快commit对应的别名删除了,具体演示如下:
2.7 git config (--global/--system) core.editor editorPath:配置commit信息编辑器,是(3)的一种特殊情况
我们在提交commit文本信息时,有时候可能会需要按照特定的格式输入较多的内容,那么使用Git默认的vi编辑器可能不是太方便,那么我们可以对该编辑器进行设置。我们可以设置成window系统的notepad记事本或者其他自己偏爱的编辑器,下面演示一个配置为notepad和Notepad++的具体实现。
这里需要注意一下,在配置编辑器时,使用
git config (--global/--system) core.editor editorPath
其中有下面几点需要注意一下:
- editorPath指的是编辑器安装的可执行程序的绝对路径,注意格式,在有空格的情况下要加上单引号或者双引号,建议没有也都加上
- 要注意分隔符的区别(window中“\”替换成Git中的“/”);比如:
git config core.editor “‘D:/Studysoftware/Notepad++/notepad++.exe’”
- 这些编辑器在你提交的时候输入git commit直接回车打开的,你也可以继续使用-m加上文本的方式
- 在编辑器中编辑完成之后,保存退出,信息即提交到节点
2.8 git diff:查看文件的差异(已经添加到仓库后者所有系统的文件与当前文件夹中的文件)
这个指令用于比较当前文件夹中的文件与仓库中最新版本文件的差异,比如我现在对a.txt添加一行内容,删除b.txt中部分内容,然后执行以下看看输出结果:
输出的结果有点“复杂”,看起来不是很容易理解,这里我们来简单分析一下:
diff --git a/a.txt b/a.txt
index 37d48a5..c455622 100644
--- a/a.txt
+++ b/a.txt
@@ -1,2 +1,3 @@
oldContent1
test alias
+new content
diff --git a/b.txt b/b.txt
index 542493a..9e018b3 100644
--- a/b.txt
+++ b/b.txt
@@ -1 +1 @@
-test core.editor
\ No newline at end of file
+test
\ No newline at end of file
其中第一行中a/a.txt表示仓库中或者已经索引中的a.txt文件,b/a.txt表示当前文件中的a.txt文件;后面三行是文件信息,接下来的
@@ -1,2 +1,3 @@
其中“-1,2”表示a/a.txt文件第一行开始后面两行;“+1,3”表示b/a.xtx文件第一行后面三行;下面的内容:
oldContent1
test alias
+new content
表示前两行内容不变,最后一行是新加内容,如果有删除的使用“-”。从上面的简单分析,有没有觉得很麻烦也很不方便。所以我们一边不使用这种方式来查看,如果没有记错,我们通过gitk打开的可视化界面就可以比较文件的差异性;而且还不会有中文乱码的问题,比如:
2.9 git config (--global/--system) diff.tool:配置文件差异比较工具
在2.8中我们使用的比较工具好像不是太友好,没有关系,GIt虽然自己做的不是很友好(本身不是针对文件比较的),但是它可以配合别人把这个做好,比如我们通过下面的语句来配置自己的文件比较工具BCompare:
git config diff.tool BCompare
git config difftool.BCompare.cmd "'D:/Studysoftware/BeyondCompare/Beyond Compare 4/BCompare.exe' \"\$LOCAL\" \"\$REMOTE\""
这样我们就可以直接使用git difftool来启动我们的文件比对工具了,完整的演示如下:
如果你不想每次都要你同意(默认比较所有文件),可以通过下面设置实现(根据的自己需求进行配置):
git config difftool.prompt false
这样,就不会让你选择比不比较该文件了。
后续每周固定更新4篇左右,共24课,预计5-6周更新完成。欢迎扫码关注: