2012-11-12 33 views
19

Tôi đang sử dụng ubuntu và tôi có một thư mục gitrepos có nhiều bản sao của nhiều repo git từ github.Nhiều git kéo trong một thư mục chứa nhiều kho

tôi muốn một tập lệnh có thể tự động thực hiện lệnh git pull trong tất cả các bản repo của mình.

nói

[gitrepos] 
    [repo1] 
    [repo2] 
    [repo3] 
    ... 

tôi muốn có một kịch bản để làm một git pull từ khắp nơi repox
lưu ý tên repo là khác nhau.

bất kỳ tập lệnh shell hoặc py nào khả dụng cho điều này?

+0

Vui lòng cải thiện câu hỏi của bạn bằng cách đăng một số mã [được định dạng đúng] (http://stackoverflow.com/editing-help) mà bạn đã áp dụng cho sự cố. –

+3

Tôi không nghĩ rằng câu hỏi này nên đã được đóng lại, tôi đã có cùng một vấn đề chính xác. Không có mã để đăng, câu hỏi của ông là làm thế nào để quản lý nhiều kho git và tôi cảm thấy rằng rõ ràng là –

+1

thanh toán 'mr' theo đề xuất của opqdonut. Bước 1) tải xuống mr và thêm nó vào đường dẫn của bạn 2) điều hướng đến từng repo git và nhập 'mr register' 3) nhập mr và nó sẽ thực hiện lệnh git pull trên tất cả các repos của bạn. siêu tiện dụng, câu hỏi tuyệt vời –

Trả lời

15

Something dòng này sẽ làm việc:

Từ ~/gitrepos:

for REPO in `ls`; do (cd "$REPO"; git pull); done; 

Từ bất cứ nơi nào:

for REPO in "`find ~/gitrepos -maxdepth 0 -type d`"; do (cd "$REPO"; git pull); done; 
+0

Thay vì sử dụng vòng lặp for over output, bạn có thể thực hiện: 'find ... -exec sh -c 'cd $ 0 && git pull' {} \;' –

+0

'ls *' xuất hiện để liệt kê repo thư mục con khi chạy từ thư mục '~/git /' của tôi. Có lẽ không phải là những gì các googlers đang tìm kiếm. – ThorSummoner

17

Có một cái nhìn tại mr, một công cụ dành cho chính xác này.

+0

công cụ tuyệt vời. Hoạt động đáng kinh ngạc cho tôi! Bây giờ tôi có thể cập nhật tất cả 34 kho lưu trữ mà nhóm của tôi đang làm việc trên một dòng: "cập nhật mr" –

+0

Đây chính xác là những gì tôi đang tìm kiếm! – dylanjameswagner

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