转自: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使用手册

来源:https://www.wellphone.me

git命令行工作环境配置【转】的更多相关文章

  1. LibOpenCM3(一) Linux下命令行开发环境配置

    目录 LibOpenCM3(一) Linux下命令行开发环境配置 本文使用 Linux 环境, 硬件为 STM32F103 系列开发板 LibOpenCM3 介绍 LibOpenCM3 是GPL协议( ...

  2. git命令行的颜色配置

    Git颜色branch,diff,interactive,status配置,git终端配置颜色,git命令行高亮 Git默认的输出是单一颜色的,感觉很不容易阅读,Git支持用多种颜色来显示其输出的信息 ...

  3. git命令行工作的正确姿势

    git命令行创建并提交新分支到mater分支的常规步骤 git branch new_branch git status 查看修改的文件 git add changed_files git commi ...

  4. 2016/01/10 C++ Primer 小记 —— 命令行编译环境配置

    OK!第一篇博文!自贺一下! 今日看了此书的前几页.嗯,说得挺全,基础易懂. 之前学过c++,但没用过命令行编译. 本人用的VS里的编译器,文件名是cl.exe,在VC目录下. 虽然有了编译器,但并不 ...

  5. [转载] 高效MacBook工作环境配置

    原文: http://www.xialeizhou.com/?p=71 高效MacBook工作环境配置 发表于 2015 年 8 月 1 日 由 xialeizhou 本文记录整个配置过程,供新入手M ...

  6. Git命令行(转用于学习和记录)

    Git命令行介绍和使用说明(持续更新) 参见:<Git 中文简体教程> 一. 命令“git”或者“git help”查询常用命令 [add]: “git add”——不但是用来添加不在版本 ...

  7. windows下使用TortoiseGit代替Git命令行操作

    windows下使用TortoiseGit代替Git命令行操作 大家在使用svn的时候,都非常喜欢使用小乌龟,也就是TortoiseSVN:那么git也有小乌龟版本,即TortoiseGit. 1.安 ...

  8. 【重要】使用Git命令行上传到GitHub上

    [本人GitHub账号:] 用户名:chenhongshuang 密码:shuangshuang6300 邮箱:2452420371@qq.com 进入GitHub账号后 1·新建项目文件名称例dem ...

  9. Jenkins Jenkins结合GIT Maven持续集成环境配置

    Jenkins结合GIT Maven持续集成环境配置   by:授客 QQ:1033553122 安装Git插件 1 安装Git客户端 1 安装JAVA JDK及MAVEN 2 Jenkins JDK ...

随机推荐

  1. 【原创】python多线程测试接口性能

    除了使用性能测试工具进行性能测试,我们也可以直接用python多线程进行性能测试. 下面,使用这几个模块,对一个查询接口做性能测试: requests:发送http请求 json:返回的字符串转换成j ...

  2. luogu1072 [NOIp2009]Hankson的趣味题 (数学+STL::set)

    一个JSB做法 由$\frac{x*b0}{gcd(x,b0)}=b1$,可得$\frac{x}{gcd(x,b0)}=\frac{b1}{b0}$ 设$b2=\frac{b1}{b0}$ 所以对$b ...

  3. C# 数组&集合&泛型集合

    一.数组 必须规定类型,必须规定长度:  1.定义 int[ ] i = new int[5]; int[] j = new int[]{1,2,3,4,5}; 2.数组的遍历: Console.Wr ...

  4. Python练习1

    一.linux,基于文件大小,创建时间,修改时间,文件内容,文件名称等进行查找汇总和输出 2019-01-04 只操作文本文件 #!/usr/bin/env python # -*- coding: ...

  5. oracle使用using关键字

    oracle使用using关键字sql/92标准可以使用using关键字来简化连接查询,但是只是在查询满足下面两个条件时,才能使 用using关键字进行简化.1.查询必须是等值连接.2.等值连接中的列 ...

  6. BootStrap行内编辑

    Bootstrap行内编辑,这里下载了一个X-Editable的插件,在Nuget里面就可以搜到. 引用的js和css大致如下: @*.Jquery组件引用*@ <script src=&quo ...

  7. 9、JPA-映射-双向多对多

    实体类 Category package com.jpa.yingshe; import java.util.HashSet; import java.util.Set; import javax.p ...

  8. 学习windows编程 day5 之 区域裁剪

    LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRU ...

  9. 学习windows编程 day4 之 多边矩形填充

    #include <windows.h> #include <math.h> LRESULT CALLBACK WndProc(HWND hwnd, UINT message, ...

  10. 纯js异步无刷新请求(只支持IE)【原】

    纯js异步无刷新请求 下载地址:http://pan.baidu.com/s/1slakL1F 所以因为非IE浏览器都禁止跨域请求,所以以只支持IE. <HTML> <!-- 乱码( ...