Git: Làm thế nào để tôi chỉ liệt kê các chi nhánh địa phương?


935

git branch -a cho thấy cả các chi nhánh từ xa và địa phương.

git branch -r cho thấy các chi nhánh từ xa.

Có cách nào để liệt kê chỉ các chi nhánh địa phương?

Câu trả lời:


1444

Chỉ cần git branchkhông có tùy chọn.

Từ trang hướng dẫn:

Không có đối số, các nhánh hiện có được liệt kê và nhánh hiện tại sẽ được tô sáng bằng dấu hoa thị.


25
Tôi đã hy vọng tìm ra một cách để liệt kê các chi nhánh địa phương không có chi nhánh từ xa tương ứng.
Steve Crane

5
Không hoàn toàn nhưng câu trả lời cho câu hỏi của tôi Làm thế nào để tôi liệt kê các chi nhánh địa phương không có chi nhánh từ xa cung cấp một số trợ giúp.
Steve Crane

3
@ c00kiemon5ter Tôi thích cách bạn tìm ra cách để có được một loạt điểm dù thế nào! Buồn cười.
Abram

4
Làm thế nào đây là câu trả lời đúng cho những gì được hỏi ("... để liệt kê * chỉ các chi nhánh địa phương ...") ???
Wagner da Silva

7
@ gr4viton: Trong các phương ngữ của tiếng Anh mà tôi quen thuộc, "chỉ liệt kê các nhánh địa phương" thường phân tích thành "chỉ liệt kê các nhánh đó là cục bộ". (Để nói "liệt kê những nhánh chỉ mang tính địa phương", tôi sẽ nói "liệt kê những nhánh chỉ có ở địa phương".)
Mathieu K.

221

chỉ là lệnh đơn giản

git branch

5
Câu trả lời này có cùng dấu thời gian với câu trả lời được chấp nhận. Câu trả lời được chấp nhận phải được dẫn trước trong phần mili giây :)
RBT

4
@RBT Di chuột qua thời gian. Câu trả lời này nhanh hơn 9 giây.
Kevin Workman

1
c00kiemon5ter xứng đáng nhận được câu trả lời!
skydev

75

git branch -a- Tất cả các chi nhánh.

git branch -r- Chỉ chi nhánh từ xa .

git branch -l hoặc git branch- Chỉ các chi nhánh địa phương .


Đối với tôi, định dạng của câu trả lời này cho thấy các -lchữ viết tắt --local, trong khi thực tế --list. Tôi sẽ đề nghị loại bỏ nó để tránh sự nhầm lẫn đó - về mặt kỹ thuật tất cả các lệnh trong câu trả lời này có thể sử dụng -lvà chúng vẫn trả về kết quả tương tự.
Thibaud Colas

34

Nếu dấu hoa thị hàng đầu là một vấn đề, tôi dẫn đường git branchnhư sau

git branch | awk -F ' +' '! /\(no branch\)/ {print $2}'

Điều này cũng giúp loại bỏ dòng '(không có nhánh)' hiển thị khi bạn tách đầu.


1
Phải sửa đổi điều này thành git branch | awk -F ' +' '$2 !~ /detached/ {print $2}'phiên bản git 1.9.1.
iurii

6
cut -c 3-là một lựa chọn dễ dàng hơn
Alexey

33

Một trong những cách đơn giản nhất để làm điều đó là

git for-each-ref --format='%(refname:short)' refs/heads/

Điều này hoạt động hoàn hảo cho các kịch bản là tốt.


12

Dưới đây là cách liệt kê các nhánh cục bộ không có nhánh từ xa có cùng tên:

git branch | sed 's|* |  |' | sort > local
git branch -r | sed 's|origin/||' | sort > remote
comm -23 local remote

3
comm -23 <(git branch | sed 's|* | |' | sort) <(git branch -r | sed 's|origin/||' | sort )
Hay

10

Cách khác để có được một danh sách chỉ chi nhánh địa phương là:

git branch -a | grep -v 'remotes'

4

Có một câu trả lời tuyệt vời cho một bài viết về cách xóa các nhánh chỉ cục bộ. Trong đó, đồng bào xây dựng một lệnh để liệt kê ra các nhánh địa phương:

git branch -vv | cut -c 3- | awk '$3 !~/\[/ { print $1 }'

Câu trả lời có một lời giải thích tuyệt vời về cách lệnh này được bắt nguồn, vì vậy tôi sẽ đề nghị bạn đi và đọc bài đăng đó.


Cảm ơn bạn đã liên kết câu trả lời. Tôi cần một thuật toán để liệt kê các chi nhánh địa phương KHÔNG theo dõi từ xa. Đây là người duy nhất làm công việc.
JuroOravec

2

Để bổ sung cho câu trả lời của @ gertvdijk - Tôi sẽ thêm một vài ảnh chụp màn hình trong trường hợp nó giúp ai đó nhanh chóng.

Trên vỏ git bash của tôi

chi nhánh git

lệnh không có bất kỳ tham số nào cho thấy tất cả các nhánh cục bộ của tôi. Nhánh hiện tại đang được kiểm tra được hiển thị bằng màu khác nhau (màu xanh lá cây) cùng với tiền tố dấu hoa thị (*) thực sự trực quan.

nhập mô tả hình ảnh ở đây

Khi bạn cố gắng xem tất cả các nhánh bao gồm các nhánh từ xa bằng cách sử dụng

chi nhánh git -a

lệnh sau đó các nhánh từ xa chưa được kiểm tra được hiển thị màu đỏ:

nhập mô tả hình ảnh ở đây


1
Một ngàn từ mà người ta không thể sao chép?
Tony Adams

2
@TonyAdams Tôi xin lỗi nếu tôi thiếu một cái gì đó nhưng cả hai lệnh mà đầu ra tôi đã hiển thị trong ảnh đều được đề cập trong nền màu xám (định dạng mã) trong bài đăng. Đừng bận tâm tôi đã cải thiện định dạng của bài đăng để làm cho nó dễ đọc hơn. Đánh giá cao phản hồi của bạn.
RBT
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.