Git 运行配置(git config、gitk、git gui)

良好的配置有助于提高效率,减少不必要的错误。把运行配置的相关内容单拎出来放到这里,查找和更新方便。

设置运行环境
git config --global user.name <your name>
git config --global user.email <your_email@example.com>
git config --global push.default simple
git config --global core.quotepath false
git config --global core.editor /usr/bin/vim
git config --global credential.helper 'cache --timeout=8640000'
git config --global core.ignorecase false
git config --global core.pager 'less -x1,5'
  • user.name;设置你的称呼;
  • user.email;设置你的邮箱;
  • push.default simple;This is the safest option and is suited for beginners. 在 git push 时不必指定 [<repository> [<refspec>...]];
  • 8640000 表示有效期 100天
  • git config --global credential.helper wincred 在 Win 下设置;
  • less -x1,5 设置 git diff 和 git show 时的 tab 为 4(初始为8);
  • core.autocrlf;Win Git Bash 时设置,见 git replacing LF with CRLF
  • git config -l;查看所有的(name.key)/(value) -l | --list
  • git config --unset;Remove the line matching the key from config file.
  • git config --unset-all:Remove all lines matching the key from config file.
  • git config --global core.quotepath false:解决 Windows Git Bash、Linux 下的中文转码问题;
  • git config --global core.editor /usr/bin/vimOS X 下 merge 命令 vi error 问题;通常 core.editor=vim。
  • git config --global credential.helper wincred:Win Git Bash 启用 http/https 协议时设置。
  • git config --global core.ignorecase false
    设置大小写敏感,保持 Mac/Win/Linux一致性;在目录名大小写修改时,git可正常提交;
关于 rebase 和 merge 的设置
  • 为了代码 log 易读,请使用 rebase
git config --global pull.rebase true
git config --global branch.autoSetupRebase always
关于 CRLF 问题的通常做法
  • Windows 下
git config --global core.autocrlf true
  • Linux & Mac
git config --global core.autocrlf input
  • 库 repo 中一定是只用 LF 做行结束符的;因此,完全在 Mac 下开发通常不会带入,但难免和 Win 环境下的同学或者外界交流,还是需要设置 input 的;
设置 .gitattributes 文件指定 CRLF 规则
  • .sh shell 文件是需要 LF 作为行结束符的
    否则使用 scp 在从 Win 向 Linux 传输 shell 文件时,shell 执行有问题,还得使用 dos2unix 小工具进行 额外修复(要么传输前修复,要么传输后修复)。
  • 在 git 库根目录下新增 .gitattributes 文件
*.sh text eol=lf
git add . -u
git commit -m "Saving files before refreshing line endings"
git rm --cached -r .
git reset --hard
git add .
# It is perfectly safe to see a lot of messages here that read
# "warning: CRLF will be replaced by LF in *file*."
git commit -m "Normalize all the line endings"
Git asks for username every time I push

git config credential.helper store
不再需要每次输入账号密码。
查看 /.git-credential、/.gitconfig、每个工程下的 .git/config 文件可了解更多。.git-credential 文件记录的都是明文,比较危险。建议使用:git config credential.helper cache,具体查看 git help credentials
git config --global credential.helper 'cache --timeout=8640000' # 100天 在 linux下使用。

如何重新输入账号密码?

使用 http 方式访问 git repo 时,假如你密码忘记了,或者服务端不小心清空了你的账号密码,那么 git 会返回 403,但并没有如你所期弹出输入账号密码的提示框,怎么办

建议
  • Win 下同学,如果只使用 Git Bash 环境开发,完全可以参照 Linux 配置,省却一切麻烦;
  • 开发工具:不论 Zend,Sublime,WebStorm,对于跨平台文件格式的支持都很好;这倒不必担心;
git config 配置文件
  1. 系统级文件 $(prefix)/etc/gitconfig
    本文即 /usr/etc/gitconfig 文件。
    git config --system 用来指定读写系统级文件。初始不存在,若不存在则无影响。
  2. 用户级文件 ~/.gitconfig
    git config --global 指定只操作用户级文件。初始不存在,若不存在则无影响。
  3. Repository 级文件 .git/config
    git config --local 对写操作,则只写入 Repository 级文件(默认行为);对读操作,则只从 Repository 级文件读。
  4. git config --file config-file 则指定 config-file。
  5. ~/.config/git/gitk
    这是 gitk 的配置文件;
  6. git config --get <keyname>:列出 <keyname> 的值;
    注:如果不特别指定哪个配置文件,则依 system/global/local 顺序读取,最后的值覆盖前面的,多值的则合并。
  7. git config --get-all <keyname>
备注
gitk 和 git gui

Git 有很多 GUI 客户端软件。git 包中通常包含 git guigitk 这两个内置 tools。在 gitk 中配合使用 git gui。

  • gitk 界面,可以看到树状图、作者、搜索区、变更说明及变更内容、变更文件列表。


    在《内容变更对照区》,鼠标右键弹出《Run git gui blame on this line》
  • 在gitk界面,打开 File>Start git gui 即可 打开 git gui 界面
    File>Start git gui
  • git gui 界面图


    git gui 界面
  • git gui 的 Edit > Option 将 Default File Contents Encoding 由 cp936 改为 UTF-8


    git gui 的 Edit > Option 将 Default File Contents Encoding 由 cp936 改为 UTF-8

gitee显示未加入企业?

windows git bash 使用 git config --unset 原有user.email和user.name,--add 新的之后,windows下 git clone 提示:

$ git clone https://gitee.com/xxx/sapi_bootstrap.git
Cloning into 'sapi_bootstrap'...
remote: You hasn't joined this enterprise!
fatal: unable to access 'https://gitee.com/xxx/sapi_bootstrap.git/': The requested URL returned error: 403

原因:“Windows 凭据”记录了原账号/密码,而该账号确实未加入该企业。windows 搜索“凭据”,修改即可。


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

推荐阅读更多精彩内容