将 Git 存储库和分支添加到 Tmux 状态行

dot*_*hen 6 linux bash git command-line tmux

我找到了一个 Tmux 配置文件,它显示了如何将 Git 分支添加到 Tmux 状态行,但是它只显示[[ branch ]]我是否在 Git 存储库中。我不确定这是否需要git-completion,但如果需要,我什至不确定它是否已安装,因为它是 Ubuntu 中的“虚拟”包(前导“v”表示“虚拟”):

$ aptitude search git-completion
v   git-completion

$ sudo apt-get install git-completion
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'git' instead of 'git-completion'
git is already the newest version.
Run Code Online (Sandbox Code Playgroud)

我如何将分支以及 CWD 的 git repo 名称添加到 Tmux 状态行?

谢谢。

小智 14

这在较新版本的 tmux 中要容易得多:

set -g status-right '#(cd #{pane_current_path}; git rev-parse --abbrev-ref HEAD)'
Run Code Online (Sandbox Code Playgroud)


drm*_*mad 6

我为此开发了一个 Bash 脚本:tmux-git

tmux-git 显示当前工作目录的 Git 分支,并检查未提交和隐藏的更改。


ara*_*one 5

我开发了一个独立于平台和 shell 的解决方案,将 Git 工作树信息显示到 Git 状态栏:gitmux
这是项目页面上的截屏视频README

gitmux 截屏视频

除了显示分支和远程之外,它还显示了有关 Git 工作树状态的附加信息:

  • 上游分支之前/之后的提交数量,分支分歧
  • 更改的文件数、stagedmodifiedconflict和 *stashes** 元素
  • 颜色

这个怎么运作

通过添加set -g status-right '#(gitmux #{pane_current_path})'到您的.tmux.conf,gitmux被称为每个工作目录更新或在终端中输入命令,gitmux打印 git status 的 tmux 格式字符串,该字符串显示在 tmux 状态栏中。或者,如果工作目录不是由 Git 管理的,则不会打印任何内容。