如何在终端上显示git的分支?

时间:2019-05-15 09:09:55

标签: git macos

我想在终端上显示git的分支名称。 但是,我不知道该怎么做。

我已经通过自制软件安装了git。

通常,我可以在“ /usr/local/etc/bash_completion.d/”上看到这两个文件

git-completion.bash git-prompt.sh

但是他们不在那里...

4 个答案:

答案 0 :(得分:1)

git rev-parse --abbrev-ref HEAD

in终端将输出当前已签出分支的名称。

答案 1 :(得分:1)

如果 @git/git/git-prompt.sh 中缺少原始的 __git_ps1 函数,则可以使用此单行作为临时解决方案。就像原来的一样,如果当前目录在任何 git 树之外,它会打印当前分支名称,如 maindev 等或什么都不打印

    __git_ps1 () {
        git rev-parse --abbrev-ref HEAD 2> /dev/null | tr -d '\n'
    }

要使该函数在 bash 中的任何地方都能正常工作,必须将上述代码添加到 /etc/bash.bashrc 或本地 ~/.bashrc 并附加 export -f __git_ps1 命令。即使在 sudo -i

之后,这也会使包装器可用

答案 2 :(得分:0)

您可以使用内置的__git_ps1

如果您没有命令__git_ps1,请在.bash_profile中将以下行添加到源git-completion.bash

source /path/to/git-completion.bash

您可以使用以下方法找到文件git-completion.bash

mdfind git-completion.bash

完成后,您需要在__git_ps1变量(定义提示)中添加对$PS1的调用。为此,您需要在.bash_profile中重新定义变量。这是一个示例:

PS1='\h:\W \u $(__git_ps1) \$'

如果您之前已经定义了它(例如,要对其进行自定义),则可以在其中添加部分$(__git_ps1)

最后,重新启动终端。

另外,您可以在.bash_profile中设置以下内容:

export GIT_PS1_SHOWDIRTYSTATE=1
export GIT_PS1_SHOWSTASHSTATE=1
export GIT_PS1_SHOWUPSTREAM=auto

如果您进行了本地修改,则第一个将显示*,如果已进行了更改,则第一个将显示+。如果您有藏匿处,第二个将允许显示$。第三个显示有关上游的信息(>,如果在前面,则可以推动; <,如果在后面,并且可以拉动,<>,如果您发散)。

它看起来像这样:

enter image description here

答案 3 :(得分:0)

为了在ubuntu终端上显示当前的git分支:

  1. 使用您喜欢的编辑器打开〜/ .bashrc文件。 (我对nano做了:sudo nano〜/ .bashrc)

  2. 然后添加以下脚本:

        button.setOnClickListerner(new View.onClickListener() {
        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("queue");
        reference.child(queue_id).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                currentNum = (long) dataSnapshot.child("currentNumber").getValue();
                long newValue = currentNum + 1;
                HasMap<String, Object> hashMap = new HashMap<>();
                hashMap.put ("currentNumber", newValue);
                reference.child(queue_id).updateChildren(hashMap);
            }
    
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });
    };
    
  3. 使用git_branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' } export PS1="[\u@\h \W]\[\033[00;32m\]\$(git_branch)\[\033[00m\]\$ "

  4. 加载bashrc文件以反映分支