2015-09-18 21 views
5

Tôi có một móc trước khi cam kết và tôi muốn thêm nó vào kho lưu trữ để bằng cách kiểm tra nó ra đồng nghiệp của tôi có nó ngay lập tức tại chỗ.
Tuy nhiên, nếu tôi cố gắng thêm nó (là trong thư mục gốc của dự án của tôi) tôi nhận được kết quả sau:Làm thế nào tôi có thể thêm móc trước khi cam kết vào kho git hiện có

$ git add .git/hooks/pre-commit 
error: Invalid path '.git/hooks/pre-commit' 
error: unable to add .git/hooks/pre-commit to index 

Bất cứ ý tưởng nếu công việc này và làm thế nào để đạt được mục tiêu của tôi?

Trả lời

7

kiểm tra nó ra đồng nghiệp của tôi có nó ngay lập tức tại chỗ

tháng 9 năm 2015: Đó là không thể xảy ra: một cái móc có thể được đưa vào kiểm soát nguồn (bạn chỉ cần sao chép các tập lệnh trong git của bạn repo), nhưng nó không thể được "tự động tại chỗ" (hoạt động) trên clone/checkout: đó sẽ là cách quá nguy hiểm, tùy thuộc vào những gì móc thực sự đang làm.
Xem thêm "Git remote/shared pre-commit hook"

Bạn vẫn sẽ cần phải kích hoạt nó bằng cách thêm một liên kết tượng trưng (ngay cả trên Windows) với cam kết trước móc hiện diện trong repo git.

Cập nhật tháng 12 năm 2016: các OP Calamity Jane đề cập in the comments:

tôi giải quyết nó bằng tại các dự án symfony2 (và với những người khác, nó cũng nên làm việc) để có nó như một phần của composer.json.
Vì vậy, nếu một đồng nghiệp đang thực hiện composer install hoặc composer update, nó sẽ tự động được đặt ở đúng vị trí.

"scripts": { "dev-install": [ "bash setup_phpcs.sh" ] }, 

Vì vậy, trên dev, setup_phpcs.sh được tự động gọi và rằng bản móc từ một thư mục trong kho đến đúng địa chỉ.
Và kể từ khi móc là một phần của kho lưu trữ, nó có thể dễ dàng cập nhật và phân phối.

+0

Với một kho lưu trữ khác, tôi đang sử dụng liên kết tượng trưng đến kho lưu trữ trung tâm với hiệu lực là một nửa số đồng nghiệp của tôi không sử dụng móc. Nhưng nếu nó không hoạt động theo cách đó, thì tôi sẽ có nó giống như kho lưu trữ khác của tôi và tôi cũng có thể hiểu tại sao điều này không được mong muốn. –

+0

Cảm ơn bạn đã trả lời * lý do *, đó là điều tôi muốn biết về @VonC. – Droogans

+0

Bằng cách này tôi đã giải quyết nó ngay bây giờ trong các dự án symfony2 (và với nó cũng nên hoạt động) để có nó như là một phần của composer.json. Vì vậy, nếu một đồng nghiệp đang thực hiện bản cập nhật trình soạn nhạc hoặc bản soạn nhạc, nó sẽ tự động được đặt ở đúng vị trí. "kịch bản": { "dev cài đặt": [ "bash setup_phpcs.sh" ] }, Vì vậy, trên setup_phpcs.sh dev được tự động gọi và rằng bản móc từ một thư mục trong kho để đúng địa chỉ. Và kể từ khi móc là một phần của kho lưu trữ nó có thể dễ dàng cập nhật và phân phối. –

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