2012-04-19 35 views
23

Chúng tôi muốn lưu trữ một số thông tin về cam kết trong cơ sở dữ liệu bên ngoài. Trong quá trình sao chép hoặc thanh toán, cơ sở dữ liệu này nên được giới thiệu và chúng tôi sao chép thông tin meta vào một tệp trong repo được sao chép. Cơ sở dữ liệu được yêu cầu thay vì chỉ sử dụng tệp là vì mục lục và tìm kiếm, v.v ...git hooks: có móc móc không?

Tôi nghĩ nếu có móc móc sao chép, chúng tôi có thể kích hoạt tính năng này. Tôi không thể tìm thấy các móc bản sao trong mẫu trong .git/hooks. có ai không? là bài kiểm tra móc khả năng duy nhất ở phía khách hàng?

Trả lời

20

ok, một cách để thực hiện việc này là sử dụng tùy chọn clone --template.

Chỉ định vị trí nơi móc khóa phía máy khách sẽ được lưu trữ dưới dạng giá trị cho khóa chuyển đổi --template. Các móc được sao chép vào bản sao, và móc sau khi thanh toán được kích hoạt ngay lập tức!

+4

Nhưng thư mục mẫu không thể ở bên trong kho lưu trữ mà bạn đang nhân bản - nó phải đã tồn tại trên hệ thống tệp trước khi bạn sao chép. – chrishiestand

+1

http://stackoverflow.com/a/2141577/1183537 đã giúp tôi rất nhiều, làm rõ hơn và giải quyết những gì bạn đã nói @chrishiestand – SuckerForMayhem

10

Khi bạn sao chép kho lưu trữ từ xa, bạn không thể chạy bất kỳ móc nối phía máy khách nào vì móc là bản địa cho bản sao làm việc của bạn và bạn đang tạo một bản sao từ đầu. Khi bạn kéo thay đổi mới từ kho lưu trữ từ xa, git sẽ chạy móc địa phương post-merge nếu nó tồn tại.

Không có gì chạy trên máy chủ là kết quả của hoạt động kéo hoạt động. Hoạt động đẩy hoạt động sẽ kích hoạt các móc updatepost-update của máy chủ.

Xem Git Book để biết thêm thông tin.