本文主要是为了说明要怎么把git配置得更加容易使用,环境是在Ubuntu系统里面,其他的Linux系统我不敢保证有效。
配置的缘由和初衷:
我曾经修改过windows下的git环境,做了一下优化工作,发现用起来也是挺方便的。具体的优化为在对repository的内容修改过之后,增加提示符显示当前的branch究竟是哪一个,在后面加*来提示已经有变动未曾Commit
但是当去到Ubuntu的时候,发现并没有预设提示信息,用起来会觉得没有那么方便,为了解决这个问题,我搜集了很多的资料,最后终于找到了解决的方法,优化了git的使用环境。
实现的几个步骤:
1.安装git
2.引用git提供的方法来找branch
3.写一段小程序来判断是否有变化发生
4.调用前面2和3的文件
(注意:以下内容以#开头,则为在终端输入的命令行)
1.安装git
安装的命令
# add-apt-repository ppa:git-core/ppa
# apt update
# apt install git
验证安装成功:
输入命令看是否显示git版本 #git --version
2.引用git提供的方法来找branch
其实git已经帮我们做好了找branch和显示状态的代码,然而它是放在一个很特别的地方,一般来说它的路径应该是/usr/lib/git-core/git-sh-prompt。找到这个文件把它的内容复制到新建文件的~/.git-prompt.sh下。下面就是实现的具体代码,我使用的sublime文本编辑器,所以打开命令为subl,如果你用的是其他文本编辑器,请写入对应的打开命令。
创建.git-prompt.sh文件:
1).创建空文件:#subl ~/.git-prompt.sh
2).打开文件: #subl /usr/lib/git-core/git-sh-prompt
3).把git-sh-prompt的内容复制到.git-prompt.sh中,保存文件
3.写一段小程序来判断是否有变化发生
以下的方法是参考一个在GitHub上的代码(git-aware-prompt)【只用了后面一个函数】
创建.git-modi-prompt.sh文件
1).创建空文件:#subl ~/.git-modi-prompt.sh
2).粘贴一下代码到文件中(粘贴后请自己调整缩进)
(用于提示是否有更改而未commit的内容)
find_git_dirty() {
local status=$(git status --porcelain 2> /dev/null)
if [[ "$status" != "" ]]; then
git_dirty='*'
else
git_dirty=''
fi
}
PROMPT_COMMAND="find_git_dirty; $PROMPT_COMMAND"
4.调用前面2和3的文件
在配置文件中设置引用前面的两个文件。下面的代码中source就是用于说明引用文件的位置,PS1用于设置Ubuntu的终端shell提示符显示的内容
1)打开.bashrc配置文件
#subl ~/.bashrc
2)在文件末尾添加:
source ~/.git-prompt.sh
source ~/.git-modi-prompt.sh
source /usr/share/bash-completion/completions/git
export PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:"'$(__git_ps1 " (\[\033[01;31m\]%s\[\033[00m\] $git_dirty)")'"\[\033[01;34m\]\w\[\033[00m\]\$ "
最后的export代码,里面有好几个地方都是设置颜色的内容,如果把所有颜色的代码去掉,其实就是:
export PS1="\u@\h:"'$(__git_ps1 " (%s$git_dirty)")'"\w\$ "
在这里面,\u代表用户名,\h代表主机名(host),__git_ps1“%s”是用于显示当前的branch,$git_dirty是用于显示提示有修改的*符号,\w是用于显示当前路径
如果要更深一层了解内容可以看一下篇简书(让 Shell 命令提示符显示 Git 分支名称)