2010-01-18 26 views
37

Git update-server-info làm gì? Làm thế nào để tôi biết nếu tôi cần nó? Hướng dẫn nói:Git update-server-info làm gì?

Một máy chủ câm mà không làm on-the-fly thế hệ gói phải có một số file thông tin phụ trợ trong $ GIT_DIR/thông tin và $ GIT_OBJECT_DIRECTORY thư mục/thông tin để giúp khách hàng khám phá tài liệu tham khảo những gì và gói các máy chủ có. Lệnh này tạo ra các tệp phụ trợ như vậy.

Làm cách nào để biết liệu máy chủ của tôi có bị tắt hay không và liệu máy chủ của tôi có "không có gói thế hệ" hay không và liệu "phải có một số tệp thông tin phụ trợ"?

Tôi đang đẩy ứng dụng web qua ssh tới kho lưu trữ trống, sau đó kéo từ kho trống đó vào thư mục gốc của web.

+0

Xem thêm http://stackoverflow.com/questions/1348568/can-i-disable-git-clone-over-http – VonC

Trả lời

35

Máy chủ câm về cơ bản có nghĩa là được truy cập qua HTTP. Vì vậy, nếu bạn truy cập vào kho lưu trữ Git của mình qua các URL http: hoặc https:, bạn cần có một doanh nghiệp update-server-info, nếu không (git:, ssh:, v.v.), bạn không cần đến nó.

+0

Nhưng bạn có phải thực thi git update-server-info sau mỗi lần đẩy vào repo không? Hoặc chỉ một lần và nó sẽ luôn cập nhật thông tin máy chủ khi thay đổi repo. Chỉnh sửa: Tôi đã thử nó, và nó có vẻ như trước đây là sự thật. –

+4

Dmitri: Bạn đúng, nó phải được thực hiện mọi cú đẩy. Nhưng bạn có thể sử dụng một cái móc để làm điều này; trên thực tế, hook post-update mẫu có lệnh đúng trong nó: 'mv hooks/post-update.sample hooks/post-update' đã làm cho tôi (chắc chắn rằng nó thực thi được) – bjnord

+2

Có ai khác chết lặng bởi điều này không? Đó là loại đáng kinh ngạc mà chia sẻ một repo trần không hoạt động khi bạn làm điều rõ ràng. Thậm chí tệ hơn, nó * trông * giống như nó hoạt động tốt nhưng sau đó hóa ra không hoạt động. –