章节 ▾ 第二版

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

Bash 中的 Git

如果你是一个 Bash 用户,你可以利用 shell 的一些特性来使你的 Git 体验更加友好。 实际上,Git 附带了几个 shell 的插件,但是默认情况下未启用它们。

首先,你需要从你使用的 Git 版本的源代码中获取 completions 文件。 通过键入 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 仓库的信息也很有用。 这可以根据你的需要简单或复杂,但是通常大多数人都需要一些关键信息,例如当前分支和工作目录的状态。 要将这些添加到你的提示中,只需将 Git 源代码仓库中的 contrib/completion/git-prompt.sh 文件复制到你的主目录,然后将类似的内容添加到你的 .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 的内容以获取更多信息。

scroll-to-top