我想在终端上显示git的分支名称。 但是,我不知道该怎么做。
我已经通过自制软件安装了git。
通常,我可以在“ /usr/local/etc/bash_completion.d/”上看到这两个文件
git-completion.bash git-prompt.sh
但是他们不在那里...
答案 0 :(得分:1)
git rev-parse --abbrev-ref HEAD
in终端将输出当前已签出分支的名称。
答案 1 :(得分:1)
如果 @git/git/git-prompt.sh 中缺少原始的 __git_ps1 函数,则可以使用此单行作为临时解决方案。就像原来的一样,如果当前目录在任何 git 树之外,它会打印当前分支名称,如 main
、dev
等或什么都不打印
__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
如果您进行了本地修改,则第一个将显示*
,如果已进行了更改,则第一个将显示+
。如果您有藏匿处,第二个将允许显示$
。第三个显示有关上游的信息(>
,如果在前面,则可以推动; <
,如果在后面,并且可以拉动,<>
,如果您发散)。
它看起来像这样:
答案 3 :(得分:0)
为了在ubuntu终端上显示当前的git分支:
使用您喜欢的编辑器打开〜/ .bashrc文件。 (我对nano做了:sudo nano〜/ .bashrc)
然后添加以下脚本:
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) {
}
});
};
使用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\]\$ "