2009-07-14 16 views

回答

4

其实,我猜g5是指他当前正在使用的机器的主机名,而git是当前的工作目录。格式[[email protected] dir]$是一个非常标准的(即广泛使用的)shell提示符。

1

像ephemient说,你会想有Git bash script installed,安装说明靠近文件的顶部。你可能也想看看这个Github guide page。值得注意的一件事是,如果你在一个git目录下,分支只会显示出来。例如,这是我的正常提示:[email protected]:~ $,当我处于git目录时提示符如下所示:[email protected]:~/code/iphone/DIFM (master*)$

如果仔细观察,显示分支master的部分带有星号之后。这意味着有未分期的变化;如果更改正在进行,它将显示一个+。这可能相当有帮助。要做到这一点,你基本上必须将GIT_PS1_SHOWSTASHSTATE设置为非空状态。因此,例如在你的~/.bashrc~/.bash_profile,把下面的:

export GIT_PS1_SHOWDIRTYSTATE=true 

现在,当你去一个git的目录,你应该看到指示灯,如果有任何不分阶段的变化或是否有任何暂存的变更。您可以通过编辑文件来快速测试。星号应该显示出来。然后,您可以通过执行文件还原到其原始状态:

git checkout -- the/file.txt 

顺便说一句,即自动完成bash脚本也确实真棒。你终于可以做'git chec'之类的东西,然后按Tab键,它会自动完成检出,例如,你也可以自动完成分支名称。

您最有可能感兴趣的其他一些资源如下,它指导您完成按照自己的方式进行提示的过程,并且如果需要,可以将颜色添加到某些部分,这可以为更具可读性和信息性的提示。只是尽量不要过头。

+0

另请参见:http://www.simplicidade.org/notes/archives/2008/02/git_bash_comple.html – 2009-07-14 22:05:08

2

如果使用的zsh(而不是更受欢迎的bash),看看通过淘愿Yammering VCS info in prompts博客文章有关使用vcs_info子系统由弗兰克Terbeck发达zsh,后端为Git。

-1

我得到如下最终工作

function get_git_branch { 
    git branch | awk '/^\*/ { print $2 } 
} 
function get_git_dirty { 
    git diff --quiet || echo '*' 
} 
function get_git_prompt { 
    git branch &> /dev/null || return 1 
    echo "($(get_git_branch)$(get_git_dirty)) " 
} 
PROMPT="$(get_git_prompt)\$ " 

Source

+0

由于某些未知原因,提示不再起作用。我提出了以下提示替换它:http://stackoverflow.com/questions/1128496/to-get-a-prompt-which-indicates-git-branch-in-zsh/1128721#1128721 – 2009-07-15 00:04:02

+1

不要使用'git分支'来获得当前分支名称,它是瓷器:使用'git symbolic-ref HEAD'。 – 2009-11-27 10:08:19

0

在搜索过程中碰到这个问题就来了。只是想分享一个更新的解决方案。

Liquid Prompt允许许多定制到zsh提示符,包括显示git分支和git仓库不同状态的各种着色。