Vì vậy, tôi đã thừa kế một cơ sở mã khá lớn từ một số nhà phát triển khác, với mã được lưu trữ trong nhiều kho lưu trữ git khác nhau.grep cho nội dung trong nhiều kho lưu trữ git
Đôi khi, thật khó để biết dự án nào là một đoạn mã cụ thể có thể nằm trong hoặc nếu đoạn mã đó tồn tại trong git.
Điều tôi muốn có thể làm là grep TẤT CẢ các dự án cho một số đoạn văn bản cụ thể.
Tôi đang sử dụng gitosis, vì vậy tất cả các kho git được lưu trữ trong/home/git/kho với một cấu trúc như:
/home/git/repositories
|- project1
|- HEAD
|- branches
|- config
|- description
|- hooks
|- info
|- objects
|- refs
|- project2
|- ...
Tôi đã thử làm một grep đệ quy cho các công cụ trong các thư mục đối tượng như thế này:
grep -Hr "text" /home/git/repositories/*/objects
Điều này không hoạt động như tôi dự định, vì các đối tượng được lưu trữ ở định dạng tùy chỉnh của git.
Làm gì?
Nếu bạn đang tìm kiếm một đoạn cụ thể của mã, như trái ngược với văn bản trong thư cam kết, bạn cũng có thể sử dụng 'git log -S' "'tại đây. Nó được gọi là [tìm kiếm cuốc.] (Http://gitfu.wordpress.com/2008/06/03/the-pickaxe-finding-changes-was-never-easier/) –
Christopher
vấn đề là các thư mục trong/home/git/kho không thực sự git cây làm việc để git grep không hoạt động trên chúng. – jdeuce
@python_noob git grep làm việc trong một repo trần nếu bạn chỉ định một ref (ví dụ, HEAD) –