git命令行工作环境配置【转】
转自:http://www.cocoachina.com/ios/20171115/21163.html
本文为CocoaChina网友whf5566投稿
前言
笔者一直使用git的图形化工具sourceTree来管理代码库,日常工作中较少的使用git命令。但最近公司给配了一台旧电脑,配置太低,只有4G内存,Xcode,chrome等应用开多了非常卡顿,于是想到在终端使用git命令来工作。在重新熟悉了git命令,使用命令行工作一段时间后,觉得命令行下的git使用起来不是那么友好,比如没有命令补全功能,查看日志界面不友好等。笔者折腾了一番,总算是弄了个让自己满意的git命令行配置。
git config 简要介绍
git的配置选项有三种:–system,–global 和 –local。其中
system是系统级别的全局设置,对所有电脑用户生效,文件在/etc/gitconfig;
global是个人用户的全局配置,对所有个人用户的代码库生效,文件在$HOME/.config/git/config或者~/.gitconfig;
local是代码库的设置,仅对设置的代码库生效,文件在代码库的.git/config。
git config常用命令
# 显示全局配置信息
git config --global --list
# 设置全局的用户名和邮箱
git config --global user.name "wellphone"
git config --global user.email wellphone@example.com
# 开启颜色
git config --global color.ui true
更加详细的配置信息见Git-配置
设置别名
git 命令一般较长,如果想少输入几个字可以设置别名,如下:
git config --global alias.st status
git config --global alias.ci commit
git config --global alias.co checkout
git config --global alias.br branch
经常敲命令的话,可以感受下使用别名带来的高效率。 除此之外,还可以创造自己的命令。比方说取消暂存文件时的输入比较繁琐,可以自己设置一下:
git config --global alias.unstage 'reset HEAD --'
然后,取消暂存文件的时候,只需要输入:
git unstage file
自定义log显示
默认不用任何参数的话,git log会按提交时间列出所有的更新,最近的更新排在最上面。每次更新都有一个SHA-1校验和、作者的名字和电子邮件地址、提交时间,最后缩进一个段落显示提交说明。但是没有图形化的分支图表来的直接美观。还好,git给我们提供了一个常用的 –pretty选项,可以指定使用完全不同于默认格式的方式展示提交历史。比如用 oneline将每个提交放在一行显示,这在提交数很大时非常有用。另外还有 short,full 和 fuller 可以用,展示的信息完全可以按照自己的喜好来。
比如笔者自己配置的这条命令:
git log --color --graph --pretty=format:'%C(yellow)%h%Creset%C(cyan)%C(bold)%C(red)%d%Creset %s %C(green)[%cn] %Creset%C(cyan)[%cd]%Creset' --date=format-local:'%m-%d %H:%M'
图:

当然,我们可以使用别名的方法来使用这条命令:
git config --global alias.lg "log --color --graph --pretty=format:'%C(yellow)%h%Creset%C(cyan)%C(bold)%C(red)%d%Creset %s %C(green)[%cn] %Creset%C(cyan)[%cd]%Creset' --date=format-local:'%m-%d %H:%M'"
输入上条命令后,以后只需要输入git lg就可以看到自定义显示的log。
更多关于log配置信息可以查看Git-基础-查看提交历史
设置自动补全命令
git 命令没有自动补全功能,这个在命令行下让人非常抓狂,尤其是在各个分支间切换的时候,狂按tab键也不能补全分支的名字。还好,有git的资深开发为我等小白准备好了自动补全功能。
如果用的是Bash shell,到git的官方源码库中的git/contrib/compleion文件夹git compleiton下载git-completion.bash文件。 将该文件复制到你自己的用户主目录中(译注:按照下面的示例,还应改名加上点:cp git-completion.bash ~/.git-completion.bash),并把下面一行内容添加到你的 .bashrc 文件中:
source ~/.git-completion.bash
在输入 Git 命令的时候可以敲两次跳格键(Tab),就会看到列出所有匹配的可用命令建议。
如图:

设置命令prompt提示
我们在使用sourceTree的时候可以很方便看见当前工作的分支,work区,stage区的修改情况。但是在命令行下,我们需要执行git status才能知道这些信息,显得不是很方便。这个情况也有资深开发替我们解决了。我们只需要简单配置下就能在命令行的prompt提示中看见当前分支及修改情况。
同样的我们需要在git官方代码库中下载git-prompt.sh文件。
1.将下载下来的文件复制到~目录下。(e.g. ~/.git-prompt.sh)
2.将以下命令加入到~/.bash_profile或者是~/.bashrc文件里
source ~/.git-prompt.sh
3.修改自己的环境变量中的PS1值,PROMPT_COMMAND值
export PS1='[u@h W$(__git_ps1 " (%s)")]$ '
export PROMPT_COMMAND='__git_ps1 "u@h:W" "\$ "'
这时,在命令行提示符上已经可以显示当前的分支名了。 4.设置如下环境变量值
export GIT_PS1_SHOWDIRTYSTATE=true
export GIT_PS1_SHOWCOLORHINTS=true
export GIT_PS1_SHOWUNTRACKEDFILES=true
export GIT_PS1_SHOWUPSTREAM="auto"
如果设置GIT_PS1_SHOWDIRTYSTATE为非空值,则会使用(*)表示有文件未放入暂存区(unstaged files),(+)表示暂存区有文件(staged files)。
如果设置GIT_PS1_SHOWUNTRACKEDFILES为非空值,则会使用(%)表示有没有加入到git中的文件(untracked files)。
如果设置GIT_PS1_SHOWCOLORHINTS为非空值,则会显示颜色。 如果设置GIT_PS1_SHOWUPSTREAM=“auto”,则会使用(<)表示当前节点落后远程分支,(>)表示远程分支节点落后当前分支,(=)表示当前分支和远程分支一样,(<>)表示当前分支同远程分支分叉了。 如图:

总结
以上只是笔者在日常工作中碰见的一些简单git配置方法,如果大家有更好更高效率的git命令使用方法,欢迎留言分享~~~ 附:git使用手册
git命令行工作环境配置【转】的更多相关文章
- LibOpenCM3(一) Linux下命令行开发环境配置
目录 LibOpenCM3(一) Linux下命令行开发环境配置 本文使用 Linux 环境, 硬件为 STM32F103 系列开发板 LibOpenCM3 介绍 LibOpenCM3 是GPL协议( ...
- git命令行的颜色配置
Git颜色branch,diff,interactive,status配置,git终端配置颜色,git命令行高亮 Git默认的输出是单一颜色的,感觉很不容易阅读,Git支持用多种颜色来显示其输出的信息 ...
- git命令行工作的正确姿势
git命令行创建并提交新分支到mater分支的常规步骤 git branch new_branch git status 查看修改的文件 git add changed_files git commi ...
- 2016/01/10 C++ Primer 小记 —— 命令行编译环境配置
OK!第一篇博文!自贺一下! 今日看了此书的前几页.嗯,说得挺全,基础易懂. 之前学过c++,但没用过命令行编译. 本人用的VS里的编译器,文件名是cl.exe,在VC目录下. 虽然有了编译器,但并不 ...
- [转载] 高效MacBook工作环境配置
原文: http://www.xialeizhou.com/?p=71 高效MacBook工作环境配置 发表于 2015 年 8 月 1 日 由 xialeizhou 本文记录整个配置过程,供新入手M ...
- Git命令行(转用于学习和记录)
Git命令行介绍和使用说明(持续更新) 参见:<Git 中文简体教程> 一. 命令“git”或者“git help”查询常用命令 [add]: “git add”——不但是用来添加不在版本 ...
- windows下使用TortoiseGit代替Git命令行操作
windows下使用TortoiseGit代替Git命令行操作 大家在使用svn的时候,都非常喜欢使用小乌龟,也就是TortoiseSVN:那么git也有小乌龟版本,即TortoiseGit. 1.安 ...
- 【重要】使用Git命令行上传到GitHub上
[本人GitHub账号:] 用户名:chenhongshuang 密码:shuangshuang6300 邮箱:2452420371@qq.com 进入GitHub账号后 1·新建项目文件名称例dem ...
- Jenkins Jenkins结合GIT Maven持续集成环境配置
Jenkins结合GIT Maven持续集成环境配置 by:授客 QQ:1033553122 安装Git插件 1 安装Git客户端 1 安装JAVA JDK及MAVEN 2 Jenkins JDK ...
随机推荐
- Leetcode 191.位1的个数 By Python
编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量). 示例 : 输入: 11 输出: 3 解释: 整数 11 的二进制表示为 00000000000 ...
- Leetcode 217.存在重复元素 By Python
给定一个整数数组,判断是否存在重复元素. 如果任何值在数组中出现至少两次,函数返回 true.如果数组中每个元素都不相同,则返回 false. 示例 1: 输入: [1,2,3,1] 输出: true ...
- 自学Linux Shell12.3-case命令
点击返回 自学Linux命令行与Shell脚本之路 12.3-case命令 有了case命令,就不需要写出所有elif语句来不停的检查同一个变量的值了.case命令会采用列表格式来检查单个变量的多个值 ...
- BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡
1778: [Usaco2010 Hol]Dotp 驱逐猪猡 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 563 Solved: 216[Submi ...
- [luogu4264][USACO18FEB]Teleportation
题解 先吐槽一波题目:便便传送门,出题人还真的有一点厉害的滑稽. 废话不多说. 首先问题的本质就是求如果当这个传送门的端点位于\(y\)的时候,最小的求出总代价,我们设为函数\(f(y)\). 因为这 ...
- py3+urllib+bs4+反爬,20+行代码教你爬取豆瓣妹子图
0.准备 所用到的模块: urllib.request,获取源码 beautifulsoup4(bs4),网页抓取数据 安装bs4,python3 -m pip install beautiful ...
- luogu1965 转圈游戏 (快速幂)
求(m*10^k+x)%n即可 #include<cstdio> #include<cstring> #include<algorithm> #define LL ...
- pyinstaller模块使用
目前pip install pyinstaller已经成熟 但是还是有一些坑,郁闷了好久,记一下注意点吧. 将py脚本打包成exe文件时,如果导入了非python自带库,则需要将导入的库从site-p ...
- IDEA安装和激活
IDEA安装 按照最新版本有可能会有很多BUG的原则,我们就安装IDEA 2018.1.6版本的. 首先,我们到IDEA官网去下载IDEA,官网链接,但是这个界面的版本一般为最新的. 这里我放出IDE ...
- Bash: about .bashrc, .bash_profile, .profile, /etc/profile, etc/bash.bashrc and others
Some interesting excerpts from the bash manpage:When bash is invoked as an interactive login shell, ...