2010-09-02 35 views
14

Sau khi tạo chi nhánh bằng --track (hoặc để mặc định, hoặc - notrack), sau này bạn sẽ được nhắc nhở về những chi nhánh đang theo dõi. Có cách nào khác ngoài tìm kiếm thông qua tệp .git/config, để hiển thị nhánh đang theo dõi cái gì không?Theo dõi chi nhánh này (nếu có) trong git là gì?

Trả lời

20

Sử dụng: git branch -vv để xem chi nhánh nào được theo dõi và loại nào không được theo dõi.

5

Nếu bạn muốn biết một chi nhánh nào đó, bạn có thể làm:

git config --get branch.<branch>.remote 

Nếu nó in một từ xa, nó theo dõi một cái gì đó. Nếu nó in không có gì và trả về thất bại, thì không.

+0

Đó là tốt đẹp để có được kho, nhưng nó không có được tên chi nhánh (có thể khác nhau) – Casebash

+0

@Casebash: Đúng, nhưng đó là một tình huống rất hiếm, và nếu bạn biết bạn đang ở trong đó, bạn có thể lấy một biến cấu hình khác. Điều này có lợi ích (so với 'git branch -vv') không có đầu ra không liên quan (nghĩa là nó có thể phân tích cú pháp máy). Đôi khi nó sẽ hữu ích. – Cascabel

+0

Tôi sẽ thêm vì lợi ích của người khác mà biến cấu hình cho tên chi nhánh là 'branch.fees.merge' – Casebash

1

Nếu bạn cần truy cập thông tin này theo cách tự động, bạn sẽ muốn tránh phân tích đầu ra của branch -vv (slebetman’s answer).

Git cung cấp một tập hợp các lệnh cấp thấp hơn với giao diện và định dạng đầu ra ổn định. Các lệnh này (được gọi là “đường ống dẫn nước”) là giao diện ưu tiên cho các mục đích ‘scripting’. Các git for-each-ref lệnh có thể cung cấp các thông tin cần thiết qua upstream token (có sẵn trong Git 1.6.3 và sau):

% git for-each-ref --shell --format=' 

b=%(refname:short) u=%(upstream:short) 
# Make a fancy report or do something scripty with the values. 
if test -n "$u"; then 
    printf "%s merges from %s\n" "$b" "$u" 
else 
    printf "%s does not merge from anything\n" "$b" 
fi 

' refs/heads/ | sh 
master merges from origin/master 
other does not merge from anything 
pu merges from origin/pu 
5

Lưu ý rằng với git1.8.3 (April 22d, 2013), bạn có một cách mới để nhấn mạnh chi nhánh thượng nguồn:

"git branch --vv" học cách vẽ tên của chi nhánh nó tích hợp với một màu sắc khác nhau (color.branch.upstream, mặc định là màu xanh).

C:\prog\git\git>git branch -vv 
* master 118f60e [origin/master] Sync with maint 
        ^^^^^^^^^^^^^ 
         | 
         --- now in blue 
+0

mà phần không được tô màu cho tôi. Tôi đang trên mac 1.8.4. Ai biết tại sao? – dongshengcn

+0

oh, đừng bận tâm. Tôi cần bật ui màu. – dongshengcn

+1

@dongshengcn có, tôi thích thiết lập 'git config color.ui luôn luôn': https://gist.github.com/VonC/972690#file-gitconfig-L25 – VonC

-1

Cảm ơn đã gợi ý Jefromi

Với lệnh sau đây bạn có thể nhận được các chi nhánh theo dõi từ xa cho một chi nhánh cụ thể.

git config --get branch.<branch>.merge 

Để thay đổi nhánh theo dõi từ xa, bạn chỉ cần thay đổi giá trị cấu hình này.

Lưu ý: đây là một cách khác để git branch -vv (đã được trả lời ở đây)
git branch -u (Make an existing Git branch track a remote branch?)

Các vấn đề liên quan