章节 ▾ 第二版

A1.6 附录 A:Git 在其他环境中的使用 - Git 在 Bash 中

Git 在 Bash 中

如果您是 Bash 用户,您可以利用一些 shell 的特性,让 Git 的使用体验更加友好。Git 实际上自带了适用于多种 shell 的插件,但默认情况下并未开启。

首先,您需要从您正在使用的 Git 版本的源代码中获取补全文件。通过输入 git version 来检查您的版本,然后使用 git checkout tags/vX.Y.Z,其中 vX.Y.Z 对应您正在使用的 Git 版本。将 contrib/completion/git-completion.bash 文件复制到方便的位置,例如您的主目录,然后将以下内容添加到您的 .bashrc 文件中:

. ~/git-completion.bash

完成以上步骤后,将目录更改到 Git 仓库中,然后输入:

$ git chec<tab>

Bash 会自动补全为 git checkout。这适用于 Git 的所有子命令、命令行参数,以及在适当情况下的远程仓库和引用名称。

自定义您的提示符以显示当前目录 Git 仓库的信息也很有用。这可以很简单也可以很复杂,但通常大多数人都需要一些关键信息,例如当前分支和工作目录的状态。要将这些添加到您的提示符中,只需将 contrib/completion/git-prompt.sh 文件从 Git 的源代码仓库复制到您的主目录,然后将类似以下内容添加到您的 .bashrc 文件中:

. ~/git-prompt.sh
export GIT_PS1_SHOWDIRTYSTATE=1
export PS1='\w$(__git_ps1 " (%s)")\$ '

\w 表示打印当前工作目录,\$ 打印提示符的 $ 部分,而 __git_ps1 " (%s)" 调用 git-prompt.sh 提供的函数,并带有一个格式参数。现在,当您处于 Git 控制的项目中的任何位置时,您的 bash 提示符将显示如下:

Customized `bash` prompt
图 184. 自定义 bash 提示符

这两个脚本都附带了非常有用的文档;请查看 git-completion.bashgit-prompt.sh 的内容以获取更多信息。