Xem http://git.or.cz/gitwiki/GitTips, phần "Làm thế nào để so sánh hai kho địa phương" trong "General".
Nói tóm lại bạn đang sử dụng biến môi trường GIT_ALTERNATE_OBJECT_DIRECTORIES được tiếp cận với đối tượng cơ sở dữ liệu của các kho lưu trữ khác, và sử dụng git rev-parse với --git-dir
/GIT_DIR để chuyển đổi tên mang tính biểu tượng trong kho lưu trữ khác để SHA-1 định danh.
phiên bản hiện đại sẽ giống như thế này (giả định rằng bạn đang ở trong 'repo_a'):
GIT_ALTERNATE_OBJECT_DIRECTORIES=../repo_b/.git/objects \
git diff $(git --git-dir=../repo_b/.git rev-parse --verify HEAD) HEAD
nơi ../repo_b/.git
là đường dẫn đến đối tượng cơ sở dữ liệu trong repo_b (nó sẽ được repo_b.git thể nó là kho trần). Tất nhiên bạn có thể so sánh các phiên bản tùy ý, không chỉ HEADs.
Lưu ý rằng nếu repo_a và repo_b là kho cùng, nó có thể làm cho ý nghĩa hơn để đưa cả hai trong kho cùng, hoặc là sử dụng "git remote add -f ...
" để tạo nickname (s) cho kho lưu trữ các bản cập nhật lặp đi lặp lại, hoặc vứt bỏ "git fetch ...
"; như được mô tả trong các câu trả lời khác.
Nguồn
2009-12-28 12:59:27
có thể trùng lặp của [Làm cách nào để so sánh hai kho lưu trữ git?] (Http://stackoverflow.com/questions/687450/how-do-i-compare-two-git-repositories) –