2009-09-13 170 views
215

我試圖尋找這個特殊的Git命令,但未能找到。任何人都可以提出任何短於或快於:只顯示當前分支Git中

git branch | awk '/\*/ { print $2; }' 
+1

我認爲這是可能的fastes方式獲得的當前分支 – Eimantas 2009-09-13 15:14:40

+0

可能重複[如何在Git中獲取當前分支的名字嗎?](http://stackoverflow.com/questions/6245570/how-to-獲得電流分支名稱功能於GIT) – 2014-09-04 11:43:25

+0

@ChandrayyaGK:沒有,因爲其他的問題是關於您在IDE中這樣做。 (許多答案都是針對命令行的,所以值得一看,但它不是一個恰當的重複,而且這些答案也許應該在這裏進行遷移,如果有的話可以爲已有的東西增加重要價值。) – tripleee 2014-10-07 07:25:36

回答

382
$ git rev-parse --abbrev-ref HEAD 
master 

這應該適用於Git 1.6.3或更新版本。

+0

不爲我工作之一,使用git-1.6.2.5。git rev-parse --abbrev-ref HEAD => --abbrev-ref 311172491a9a667f9321bdf1c4fe5e22cc6e2c08(即rev-parse不接受--abbrev-ref(不在man手冊頁中)) – JasonWoof 2009-09-13 16:59:25

+0

JasonWoof,適合我1.6 .4.2,需要更改日誌才能看到它到底發生了什麼;-) – 2009-09-13 17:08:30

+6

據我可以從Git日誌中看出,該功能在2009年4月20日合併,並在版本1.6.3中發佈。 – earl 2009-09-13 23:55:44

4

我使用

/etc/bash_completion.d/git 

它帶着Git和提供分支名稱和參數完成的提示。

+0

如何激活此提示? – Alex 2012-11-08 11:04:15

+0

在Ubuntu中,'$源/等// bash_completion.d /混帳prompt'文件可能有不同的不同的系統來命名。 (注:'source'關鍵字是在bash和上面一樣'.'(點)。) – michael 2016-11-01 10:08:51

25

您可能會感興趣的

git symbolic-ref HEAD 

尤其是輸出,根據您的需求和佈局,你不妨做

basename $(git symbolic-ref HEAD) 

git symbolic-ref HEAD | cut -d/ -f3- 

,然後再次有.git/HEAD文件,這也可能是你感興趣的。

+2

可以縮短'git的REV-解析--symbolic-全name'到'git的象徵,ref'。 – earl 2009-09-13 15:36:07

+1

你不需要使用'basename'或'cut';使用'BR = $ {BR#refs/heads /}'(其中BR是'git symbolic-ref HEAD'輸出的變量的名稱)。 – 2009-09-13 15:48:00

+0

Jakub當然不是,只要你有變量的輸出。 – 2009-09-13 17:06:43

6

這是一個古老的線程我只是偶然。從我可以告訴,有沒有辦法本身只顯示在GIT當前分支,所以我一直在使用:

#> git branch | grep '*' 
+1

雖然GNU coreutils可以工作,但grep'*'是名義上是一個語法錯誤。你可能想'git branch |無論如何,sed -n's/^ \ * // p''。或者實際上,OP首先發布的內容相同。 – tripleee 2014-10-07 07:26:59

+0

@tripleee您能否告訴我爲什麼'grep'*''名義上是一個語法錯誤? – 2016-11-10 03:36:04

+0

就像英文中的複數* s *本身沒有任何有用的含義一樣,你不能孤獨地說出「零次或多次」,而沒有任何東西。 (我想我想起了GNU'grep'文件特別提到,一個孤獨的'*'在字符串的開頭是字面解釋,即作爲'[*]'一般的正則表達式,但我無法找到現在這個記錄。) – tripleee 2016-11-10 04:36:25

74

(我不能回答添加評論,所以)

在Git的1.8.1可以使用git的象徵-REF命令和「--short」選項:

$ git symbolic-ref HEAD 
refs/heads/develop 
$ git symbolic-ref --short HEAD 
develop 
+0

謝謝。別名已創建。 – 2017-03-15 21:52:02

+3

比IMO接受的答案比較好,因爲它可以在沒有提交 – 2017-08-02 06:46:55

+0

回購得到的錯誤'致命的:運行此作爲TravisCI的一部分時所建裁判HEAD是不是一個符號ref' – kmanzana 2017-09-21 16:50:24

0

我想這應該是快速的,並且可以使用Python API一起使用。

git branch --contains HEAD 
* master