Từ trang hướng dẫn chi nhánh git :
git branch --contains <commit>
Chỉ liệt kê các nhánh có chứa cam kết được chỉ định (CHÍNH nếu không được chỉ định). Ngụ ý --list
.
git branch -r --contains <commit>
Liệt kê các nhánh theo dõi từ xa (như được đề cập trong câu trả lời của người dùng3941992 bên dưới) đó là "các nhánh cục bộ có mối quan hệ trực tiếp với một nhánh từ xa".
Xem thêm bài viết này git sẵn sàng .
Các --contains
thẻ sẽ tìm ra nếu một số cam kết đã được đưa vào chưa thành chi nhánh của bạn. Có lẽ bạn đã có một SHA cam kết từ một bản vá mà bạn nghĩ rằng bạn đã áp dụng hoặc bạn chỉ muốn kiểm tra xem cam kết cho dự án nguồn mở yêu thích của bạn có giảm 75% mức sử dụng bộ nhớ hay không.
$ git log -1 tests
commit d590f2ac0635ec0053c4a7377bd929943d475297
Author: Nick Quaranto <nick@quaran.to>
Date: Wed Apr 1 20:38:59 2009 -0400
Green all around, finally.
$ git branch --contains d590f2
tests
* master
Lưu ý: nếu cam kết nằm trên nhánh theo dõi từ xa , hãy thêm -a
tùy chọn .
(như bình luận của MichielB bên dưới )
git branch -a --contains <commit>
MatrixFrog nhận xét rằng nó chỉ hiển thị các nhánh chứa cam kết chính xác đó .
Nếu bạn muốn biết những nhánh nào chứa một cam kết "tương đương" (tức là những nhánh nào đã chọn cam kết đó) git cherry
:
Vì git cherry
so sánh các thay đổi thay vì id xác nhận (sha1) , bạn có thể sử dụng git cherry
để tìm hiểu xem một cam kết bạn đã thực hiện cục bộ có được áp dụng <upstream>
theo một id xác nhận khác không.
Ví dụ: điều này sẽ xảy ra nếu bạn đang cung cấp các bản vá <upstream>
qua email thay vì đẩy hoặc kéo cam kết trực tiếp.
__*__*__*__*__> <upstream>
/
fork-point
\__+__+__-__+__+__-__+__> <head>
(Ở đây, các cam kết được đánh dấu ' -
' sẽ không xuất hiện git cherry
, nghĩa là chúng đã có mặt <upstream>
.)