Sử dụng -C
tùy chọn (docs):
git -C /home/repo log
Đây là gần tương đương với --git-dir
và --work-tree
mà không phụ thêm thông thường .git
thư mục
Edit:
Trả lời downvoted ... khá tuyệt vời, như, nói đúng, đây là câu trả lời đúng cho câu hỏi. Các tùy chọn --git-dir
và --work-tree
không tồn tại để truy cập kho lưu trữ từ bên ngoài cây làm việc, chúng được sử dụng để di chuyển .git
ở một nơi khác và chúng phức tạp hơn nhiều khi sử dụng trong một số trường hợp.
Ví dụ, để có được các bản ghi của /home/repo/subdir
chỉ:
git -C /home/repo/subdir log .
hoặc
git -C /home/repo log subdir
Nó không phải là có thể sử dụng log .
với --git-dir
hoặc --work-tree
. Đường dẫn phải được xử lý để trích xuất đường con tương ứng với đỉnh của cây công việc và ngay cả trong trường hợp đó, git sẽ không nhận ra đường dẫn nếu bạn không sử dụng tùy chọn --
, do đó, cách duy nhất có thể là:
git --git-dir /home/repo/.git log -- subdir
Hơn nữa, --work-tree
hoàn toàn không hoạt động với phiên bản log
với phiên bản của tôi (git 1.9.1). Nó chỉ bị bỏ qua:
git --git-dir /home/repo/.git --work-tree /home/repo/subdir log -- subdir
git --git-dir /home/repo/.git --work-tree /home/repo/whatever log -- subdir
Tôi thậm chí không hiểu nếu đây là lỗi hoặc tính năng ... như thường lệ với nhiều lựa chọn thiết kế git.
Không thể bạn chỉ là "cd/home/repo && git log" như exec của bạn gọi? –
Tôi có một số vấn đề lạ với nó. Tôi đang bắt đầu một quá trình mới, không thực sự là một exec, nhưng tôi không biết làm thế nào họ khác nhau mặc dù. Tôi thấy dễ dàng hơn khi chỉ tìm một tham số để chỉ định thư mục git. – Tower
có thể trùng lặp của [Tôi có thể thực hiện các hoạt động git (thêm/diff/commit) trên các tệp trong một kho lưu trữ khi thư mục hiện tại của tôi không có trong kho lưu trữ] hay không (http://stackoverflow.com/questions/3205867/can-i- perform-git-operation-add-diff-cam-on-files-in-a-repository-when-my) – Hilikus