Tôi đã cố gắng tìm kiếm một lệnh Git đặc biệt cho việc này, nhưng tôi không thể tìm thấy. Có bất cứ điều gì ngắn hơn hoặc nhanh hơn sau đây?
git branch | awk '/\*/ { print $2; }'
Tôi đã cố gắng tìm kiếm một lệnh Git đặc biệt cho việc này, nhưng tôi không thể tìm thấy. Có bất cứ điều gì ngắn hơn hoặc nhanh hơn sau đây?
git branch | awk '/\*/ { print $2; }'
Câu trả lời:
$ git rev-parse --abbrev-ref HEAD
master
Điều này sẽ hoạt động với Git 1.6.3 hoặc mới hơn.
HEAD
, không được mong đợimaster
Trong Git 1.8.1, bạn có thể sử dụng lệnh git Symbolic -ref với tùy chọn "--short":
$ git symbolic-ref HEAD
refs/heads/develop
$ git symbolic-ref --short HEAD
develop
fatal: ref HEAD is not a symbolic ref
Gặp lỗi khi chạy nó như là một phần của bản dựng
Với Git 2.22 (quý 2 năm 2019), bạn sẽ có một cách tiếp cận đơn giản hơn : git branch --show-current
.
Xem cam kết 0ecb1fc (ngày 25 tháng 10 năm 2018) của Daniels Umanovskis ( umanovskis
) .
(Được hợp nhất bởi Junio C Hamano - gitster
- trong cam kết 3710f60 , ngày 07 tháng 3 năm 2019)
branch
: giới thiệu--show-current
tùy chọn hiển thịKhi được gọi với
--show-current
,git branch
sẽ in tên chi nhánh hiện tại và chấm dứt.
Chỉ có tên thực tế được in, không córefs/heads
.
Trong trạng thái CHÍNH tách ra, không có gì là đầu ra.Dự định cả cho kịch bản và sử dụng tương tác / thông tin.
Không giống nhưgit branch --list
, không cần lọc để chỉ lấy tên chi nhánh.
Bạn có thể quan tâm đến đầu ra của
git symbolic-ref HEAD
Đặc biệt, tùy thuộc vào nhu cầu và bố cục của bạn, bạn có thể muốn làm
basename $(git symbolic-ref HEAD)
hoặc là
git symbolic-ref HEAD | cut -d/ -f3-
và sau đó một lần nữa có các .git/HEAD
tập tin cũng có thể quan tâm cho bạn.
git rev-parse --symbolic-full-name
để git symbolic-ref
.
basename
hoặc cut
; sử dụng BR=${BR#refs/heads/}
(trong đó BR là tên của biến bạn đã lưu đầu ra của git symbolic-ref HEAD
).
git symbolic-ref --short HEAD
cũng
Từ những gì tôi có thể nói, không có cách nào để chỉ hiển thị chi nhánh hiện tại trong Git, vì vậy tôi đã sử dụng:
git branch | grep '*'
grep '*'
là lỗi cú pháp. Bạn có thể muốn git branch | sed -n 's/^\* //p'
dù sao đi nữa. Hoặc thực sự, những gì OP đăng ở vị trí đầu tiên, tương đương với điều tương tự.
grep '*'
trên danh nghĩa là lỗi cú pháp không?
'*'
là một biểu thức chính quy và như vậy nó không hợp lệ. Bạn có thể muốn sử dụng '[*]'
(nghĩa là ký tự *
thay vì toán tử "không hoặc nhiều lần").
grep '\*'
git branch | grep "*" | cut -d' ' -f2
Tôi đoán việc này sẽ nhanh chóng và có thể được sử dụng với API Python:
git branch --contains HEAD
* master
Tôi đang sử dụng
/etc/bash_completion.d/git
Nó đi kèm với Git và cung cấp một dấu nhắc với tên nhánh và hoàn thành đối số.
$ source /etc//bash_completion.d/git-prompt
File có thể được đặt tên khác nhau trên các hệ thống khác nhau. (Lưu ý: source
từ khóa giống như chỉ .
(dấu chấm) trong bash.)
Để đầy đủ, echo $(__git_ps1)
trên Linux, ít nhất, nên cung cấp cho bạn tên của nhánh hiện tại được bao quanh bởi dấu ngoặc đơn.
Điều này có thể hữu ích là một số tình huống vì nó không phải là lệnh Git (trong khi tùy thuộc vào Git), đáng chú ý là để thiết lập dấu nhắc lệnh Bash của bạn để hiển thị nhánh hiện tại .
Ví dụ:
/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>
Ai đó có thể thấy điều này ( ) hữu ích. Nhánh hiện tại được hiển thị với dấu *.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