Saya mencoba mencari perintah khusus Git untuk ini, tetapi saya tidak dapat menemukannya. Adakah yang lebih pendek atau lebih cepat dari yang berikut?
git branch | awk '/\*/ { print $2; }'
Saya mencoba mencari perintah khusus Git untuk ini, tetapi saya tidak dapat menemukannya. Adakah yang lebih pendek atau lebih cepat dari yang berikut?
git branch | awk '/\*/ { print $2; }'
Jawaban:
$ git rev-parse --abbrev-ref HEAD
master
Ini harus bekerja dengan Git 1.6.3 atau lebih baru.
HEAD
, tidak diharapkanmaster
Di Git 1.8.1 Anda dapat menggunakan perintah git symbolic-ref dengan opsi "--short":
$ git symbolic-ref HEAD
refs/heads/develop
$ git symbolic-ref --short HEAD
develop
fatal: ref HEAD is not a symbolic ref
saat menjalankan ini sebagai bagian dari build
Dengan Git 2.22 (Q2 2019), Anda akan memiliki pendekatan yang lebih sederhana: git branch --show-current
.
Lihat komit 0ecb1fc (25 Okt 2018) oleh Daniels Umanovskis ( umanovskis
) .
(Digabung oleh Junio C Hamano - gitster
- dalam komit 3710f60 , 07 Mar 2019)
branch
: memperkenalkan--show-current
opsi tampilanSaat dipanggil dengan
--show-current
,git branch
akan mencetak nama cabang saat ini dan mengakhiri.
Hanya nama sebenarnya yang akan dicetak, tanparefs/heads
.
Dalam keadaan HEAD terlepas, tidak ada output.Ditujukan baik untuk scripting dan penggunaan interaktif / informatif.
Tidak seperti itugit branch --list
, tidak diperlukan pemfilteran untuk mendapatkan nama cabang saja.
Anda mungkin tertarik dengan output dari
git symbolic-ref HEAD
Secara khusus, tergantung pada kebutuhan dan tata letak yang mungkin ingin Anda lakukan
basename $(git symbolic-ref HEAD)
atau
git symbolic-ref HEAD | cut -d/ -f3-
dan sekali lagi ada .git/HEAD
file yang mungkin juga menarik bagi Anda.
git rev-parse --symbolic-full-name
menjadi git symbolic-ref
.
basename
atau cut
; gunakan BR=${BR#refs/heads/}
(di mana BR adalah nama variabel tempat Anda menyimpan output git symbolic-ref HEAD
).
git symbolic-ref --short HEAD
juga
Dari apa yang bisa saya katakan, tidak ada cara untuk menunjukkan secara asli hanya cabang saat ini di Git, jadi saya telah menggunakan:
git branch | grep '*'
grep '*'
secara nominal merupakan kesalahan sintaksis. Anda mungkin ingin git branch | sed -n 's/^\* //p'
tetap. Atau sebenarnya, apa yang diposting OP di tempat pertama, yang jumlahnya sama.
grep '*'
secara nominal kesalahan sintaksis?
'*'
ekspresi reguler dan karenanya tidak valid. Anda mungkin ingin menggunakan '[*]'
(yaitu, karakter *
alih-alih operator "nol atau lebih banyak kali").
grep '\*'
git branch | grep "*" | cut -d' ' -f2
Saya kira ini harus cepat dan dapat digunakan dengan API Python:
git branch --contains HEAD
* master
saya menggunakan
/etc/bash_completion.d/git
Itu datang dengan Git dan memberikan prompt dengan nama cabang dan penyelesaian argumen.
$ source /etc//bash_completion.d/git-prompt
File dapat diberi nama berbeda pada sistem yang berbeda. (Catatan: source
kata kunci sama dengan .
(dot) di bash.)
Untuk kelengkapan, echo $(__git_ps1)
setidaknya di Linux, harus memberi Anda nama cabang saat ini yang dikelilingi oleh tanda kurung.
Ini mungkin berguna adalah beberapa skenario karena ini bukan perintah Git (sementara tergantung pada Git), terutama untuk mengatur Bash command prompt Anda untuk menampilkan cabang saat ini .
Sebagai contoh:
/mnt/c/git/ConsoleApp1 (test-branch)> echo $(__git_ps1)
(test-branch)
/mnt/c/git/ConsoleApp1 (test-branch)> git checkout master
Switched to branch 'master'
/mnt/c/git/ConsoleApp1 (master)> echo $(__git_ps1)
(master)
/mnt/c/git/ConsoleApp1 (master)> cd ..
/mnt/c/git> echo $(__git_ps1)
/mnt/c/git>
Seseorang mungkin menganggap ini ( ) bermanfaat. Cabang saat ini ditunjukkan dengan tanda *.git show-branch
--current
host-78-65-229-191:idp-mobileid user-1$ git show-branch --current
! [CICD-1283-pipeline-in-shared-libraries] feat(CICD-1283): Use latest version of custom release plugin.
* [master] Merge pull request #12 in CORES/idp-mobileid from feature/fix-schema-name to master
--
+ [CICD-1283-pipeline-in-shared-libraries] feat(CICD-1283): Use latest version of custom release plugin.
+ [CICD-1283-pipeline-in-shared-libraries^] feat(CICD-1283): Used the renamed AWS pipeline.
+ [CICD-1283-pipeline-in-shared-libraries~2] feat(CICD-1283): Point to feature branches of shared libraries.
-- [master] Merge pull request #12 in CORES/idp-mobileid from feature/fix-schema-name to master