程序员如何通过Git配置提升工作效率

最近在工作中遇到一些Git配置方面的问题,在这里记录一些解决方案,希望能帮到大家少踩一些坑。

主要涉及:

  • Git配置文件
  • Git配置代理(Proxy)
  • Git配置Unix换行符
  • 配置Gerrit默认Push


Git配置文件

Git配置文件有三个级别,分别是系统级别、全局级别以及仓库级别。下面的表格展示了各个级别的配置的具体信息:

配置级别 文件位置 配置命令 优先级别
系统 Git安装目录\etc\gitconfig git config --system
全局 用户文件夹.gitconfig git config --global
仓库 仓库文件夹.git\config git config --local

多级别的配置文件对于在同一台电脑上同时拥有公司代码和个人代码的开发者来说还是非常方便的。如果相同配置存在于各个级别的配置文件中,则仓库级别的优先级最高。修改Git配置可以通过命令行,也可以直接修改相应的配置文件内容。

如果要对全局的Git用户名和邮箱进行配置,命令如下:

$ git config --global user.name "输入你的用户名"
$ git config --global user.email "输入你的邮箱"

要查看所有配置或者某一项配置,命令如下:

$ git config --global -l
$ git config --global --get user.name
$ git config --global --get user.email

用户名和邮箱等字段都是默认存在的配置项,如果要添加新的配置项,则命令如下:

$ git config --global --add myConfig.name myConfigValue
$ git config --global --add myConfig.email myConfigValue


Git配置代理(Proxy)

许多公司对Maven、Git等仓库都有代理服务器,git config也提供了代理的配置。

$ git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080

proxyuser:proxypwd为代理的用户名和密码,如果没有,可以忽略掉这段。
proxy.server.com为代理的地址,可以是IP或者URL,8080则为代理端口。
请根据具体情况进行修改配置。

取消代理的配置(同样适用于取消其他配置):

$ git config --global --unset http.proxy


Git配置Unix换行符

使用Windows开发经常会遇上换行符不匹配的问题,代码对比工具会告诉你‘Contents have differences only in line separators’,什么意思?

IDEA修改文件的默认换行符

在Unix中,换行符为\n(LF),而在Windows下,换行符为\r\n(CRLF)。通过配置Git,也可以避免换行符不匹配的问题。

core.autocrlf

core.autocrlf 这一配置项能够自动在commit或check out时转换两种换行符。

$ git config --global core.autocrlf true

check out代码时,换行符会自动由LF转换为CRLF,而在commit时,Git也会将CRLF转换为LF,以方便在Windows上开发。

$ git config --global core.autocrlf input

check out代码时,不会有任何的转换发生,而在commit代码时,Git仍旧会把CRLF转换为LF。这个选项推荐Mac开发者使用。

$ git config --global core.autocrlf false

整个自动转换就会被关闭,比较适合大家都在同一种系统上进行开发的工程。此时也可配置core.eol(ending of line)来规定本地仓库的统一规则,选项为lf/crlf/native。

core.safecrlf

core.safecrlf 这一配置项能够在commit代码时检查是否混用了换行符。

$ git config --global core.safecrlf true

Git会在提交时进行检查,并拒绝混用了换行符的文件的提交

$ git config --global core.safecrlf warn

Git会在提交时进行检查,并提示警告

$ git config --global core.safecrlf false

Git不会在提交时进行检查

当然,统一代码的规范不能能依赖于Git的配置,这应该是一个团队基本的合作精神。


Gerrit配置默认Push

Gerrit是一款Code Review代码审查工具,它在Git远程仓库和本地仓库之间设立了一个代码审查的服务器,每一个commit都可以在进行CI检查、审阅之后再被决定是否合并至主分支。

然而Gerrit要求代码push至refs/for/(branch),这样才能将代码提交到Gerrit服务器上进行审阅。这就导致每次push代码,必须键入如下的命令,或是使用SourceTree类似的工具时每次都要手动修改push的地址:

$ git push origin HEAD:refs/for/master

通过Git配置的修改,可以让代码默认被push到Gerrit中:

$ git config --local remote.origin.push refs/heads/*:refs/for/*
修改配置后,SourceTree Push代码时的Remote branch

文中如有表达不恰当的地方,请帮忙指正,也欢迎技术交流,谢谢!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容