Pertanyaan Bagaimana cara mendapatkan nama cabang saat ini di Git?


Saya berasal dari latar belakang Subversion dan, ketika saya memiliki cabang, saya tahu apa yang saya kerjakan dengan "File-file yang bekerja ini mengarah ke cabang ini".

Tetapi dengan Git saya tidak yakin ketika saya mengedit file di NetBeans atau Notepad ++, apakah itu terkait dengan master atau cabang lain.

Tidak ada masalah dengan itu git di bash, itu memberitahuku apa yang aku lakukan.


1711
2018-06-05 20:13


asal


Jawaban:


git branch

harus menampilkan semua cabang lokal repo Anda. Cabang yang berbintang adalah cabang Anda saat ini.


1295
2018-06-05 20:17



git rev-parse --abbrev-ref HEAD

Itu akan menampilkan cabang saat ini.

Referensi:


3636
2017-08-27 12:33



Anda juga git symbolic-ref HEAD yang menampilkan refspec lengkap.

Untuk hanya menampilkan nama cabang di Git v1.8 dan yang lebih baru (terima kasih kepada Greg untuk menunjukkannya):

$ git symbolic-ref --short HEAD

Di Git v1.7 + Anda juga dapat melakukan:

$ git rev-parse --abbrev-ref HEAD

Keduanya harus memberikan nama cabang yang sama jika Anda berada di cabang. Jika Anda berada di jawaban kepala terpisah berbeda.

catatan:

Pada klien sebelumnya, ini sepertinya berfungsi:

$ git symbolic-ref HEAD | sed -e "s/^refs\/heads\///"

- Darien 26. Mar 2014


399
2017-08-08 15:55



Untuk referensi saya sendiri (tetapi mungkin berguna untuk orang lain) saya membuat ikhtisar sebagian besar teknik (baris perintah dasar) yang disebutkan di utas ini, masing-masing diterapkan pada beberapa kasus penggunaan: HEAD (menunjuk pada):

  • cabang lokal (master)
  • cabang pelacakan jarak jauh, sinkron dengan cabang lokal (asal / master pada komitmen yang sama dengan master)
  • cabang pelacakan jarak jauh, tidak sinkron dengan cabang lokal (asal / fitur-foo)
  • tag (v1.2.3)
  • kepala terpisah umum (tidak ada di atas)

Hasil:

  • git branch | sed -n '/\* /s///p'
    • cabang lokal: master
    • cabang pelacakan jarak jauh (sinkron): (detached from origin/master)
    • cabang pelacakan jarak jauh (tidak sinkron): (detached from origin/feature-foo)
    • menandai: (detached from v1.2.3)
    • kepala terpisah umum: (detached from 285f294)
  • git status | head -1
    • cabang lokal: # On branch master
    • cabang pelacakan jarak jauh (sinkron): # HEAD detached at origin/master
    • cabang pelacakan jarak jauh (tidak sinkron): # HEAD detached at origin/feature-foo
    • menandai: # HEAD detached at v1.2.3
    • kepala terpisah umum: # HEAD detached at 285f294
  • git describe --all
    • cabang lokal: heads/master
    • cabang pelacakan jarak jauh (sinkron): heads/master (catatan: tidak  remotes/origin/master)
    • cabang pelacakan jarak jauh (tidak sinkron): remotes/origin/feature-foo
    • menandai: v1.2.3
    • kepala terpisah umum: v1.0.6-5-g2393761
  • cat .git/HEAD:
    • cabang lokal: ref: refs/heads/master
    • semua kasus penggunaan lainnya: SHA dari commit yang bersangkutan
  • git rev-parse --abbrev-ref HEAD
    • cabang lokal: master
    • semua kasus penggunaan lainnya: HEAD
  • git symbolic-ref --short HEAD
    • cabang lokal: master
    • semua kasus penggunaan lainnya: fatal: ref HEAD is not a symbolic ref

(FYI ini dilakukan dengan git versi 1.8.3.1)


167
2017-10-25 08:53



Satu lagi alternatif:

git name-rev --name-only HEAD

118
2017-11-02 19:17



Cukup sederhana, saya mendapatkannya dalam satu liner (bash)

git branch | sed -n '/\* /s///p'

(kredit: Penebusan Terbatas)

Dan sementara saya di sana, liner satu untuk mendapatkan cabang pelacakan jarak jauh (jika ada)

git rev-parse --symbolic-full-name --abbrev-ref @{u}

87
2018-04-04 15:20



Anda cukup mengetikkan baris perintah (konsol) di Linux, di direktori repositori:

$ git status

dan Anda akan melihat beberapa teks, di antaranya sesuatu yang mirip dengan:

...
On branch master
...

yang berarti Anda saat ini master cabang. Jika Anda mengedit file apa pun pada saat itu dan itu terletak di repositori lokal yang sama (direktori lokal yang berisi file yang berada di bawah manajemen kontrol versi Git), Anda mengedit file di cabang ini.


48
2018-06-05 20:31



git symbolic-ref -q --short HEAD

Saya menggunakan ini dalam skrip yang membutuhkan nama cabang saat ini. Ini akan menunjukkan referensi simbolik singkat saat ini ke HEAD, yang akan menjadi nama cabang Anda saat ini.


26
2017-10-02 22:09