2012-09-06 30 views
55

Tôi đang tìm một cái gì đó như git list-path in đường dẫn của kho lưu trữ liên quan (thư mục .git).Cách tìm đường dẫn của kho lưu trữ git cục bộ khi tôi có thể trong thư mục con

Một chút nền: Tôi đã thiết lập kiểm soát phiên bản git trên một số dự án/thư mục của tôi. Một số trong số chúng được lồng nhau, do đó, một thư mục với kho lưu trữ riêng của echo là một thư mục con đến một thư mục khác được theo dõi với một kho lưu trữ khác.

Ví dụ: trong thư mục chính của tôi (~) Tôi sử dụng git để theo dõi các tệp chấm của tôi, nhưng trong thư mục ~/photo/meta-mix/ Tôi có một dự án khác mà tôi theo dõi với một kho lưu trữ riêng biệt . Bây giờ, giả sử, tôi đã thiết lập một dự án khác trong thư mục ~/photo/meta-match/, nhưng tôi không biết nữa cho dù dự án có kho lưu trữ riêng của mình hay không. Vì vậy, tôi muốn tìm hiểu xem thư mục này là phiên bản được kiểm soát và nơi lưu trữ của nó.

Làm cách nào tôi có thể thực hiện việc này bằng lệnh git? git status có thể cho tôi

nothing to commit 

trong cả trường hợp, khi ~/photo/meta-match/ có kho riêng của mình hoặc khi nó chỉ đề cập đến các kho lưu trữ của ~.

Trả lời

70
git rev-parse --show-toplevel 

có thể đủ nếu được thực hiện trong repo git.
Từ trang git rev-parse người đàn ông:

--show-toplevel 

Hiện đường dẫn tuyệt đối của thư mục cấp cao nhất.

Đối với phiên bản cũ (trước 1.7.x), các tùy chọn khác được liệt kê trong "Is there a way to get the git root directory in one command?":

git rev-parse --git-dir 

Điều đó sẽ cung cấp cho các đường dẫn của thư mục .git.


Các OP đề cập:

git rev-parse --show-prefix 

mà trả về con đường địa phương dưới gốc git repo. (Trống nếu bạn đang ở thư mục gốc git repo)


Lưu ý: để đơn giản kiểm tra nếu một người trong một repo git, tôi tìm thấy những lệnh sau đây khá diễn cảm:

git rev-parse --is-inside-work-tree 

Và vâng, nếu bạn cần phải kiểm tra xem bạn đang ở trong một thư mục .git git-dir:

git rev-parse --is-inside-git-dir 
+0

Đáng tiếc là trên các phiên bản cũ của 'git' (trước v1.7.0) mà chỉ cần in '--show-toplevel' - nó thậm chí không một lỗi. –

+0

@BenJackson có cơ hội nâng cấp không? Nếu không, tôi đã chỉnh sửa để thêm một lệnh khác – VonC

+0

Không phải câu hỏi của tôi: Tôi chỉ bình luận về câu trả lời.Với hành vi cũ, tôi có thể thấy sự nhầm lẫn thực sự nếu ai đó phát hành một kịch bản dựa vào phương pháp đó. –

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