2015-01-17 15 views
6

Kết quả của nhiều tìm kiếm trên mạng là pre-checkout móc trong git chưa được triển khai. Lý do có thể là:Làm thế nào để đạt được móc 'tiền kiểm tra' trong Git/bitbucket?

  • Không sử dụng thực tế. Tôi có một trường hợp
  • Có thể đạt được bằng bất kỳ phương tiện nào khác. Vui lòng cho tôi biết cách thực hiện?
  • Quá khó thực hiện. Tôi không nghĩ rằng đây là một lý do chính đáng

Ở đây vấn đề của tôi là:

tôi đã triển khai pre-commit, post-merge & post-checkout móc để duy trì bản sao lưu cơ sở dữ liệu khác nhau cho từng ngành.

Kịch bản: Bây giờ khi tôi cam kết sao lưu cơ sở dữ liệu được lưu trong tệp sử dụng móc pre-commit. Và khi tôi thanh toán chi nhánh hoặc hợp nhất xảy ra, cơ sở dữ liệu được lưu trữ trong tệp được khôi phục bằng cách sử dụng các móc post-merge & post-checkout. Bây giờ tình hình là nếu ai đó thực hiện thay đổi trong cơ sở dữ liệu sau khi cam kết và thanh toán, các thay đổi sẽ bị mất, vì cơ sở dữ liệu không được sao lưu. Việc thanh toán đã thành công do không có thay đổi về cấu trúc tệp.

Vì vậy, trong trường hợp này, tôi muốn có móc pre-checkout để xử lý tác vụ sao lưu cơ sở dữ liệu trong kịch bản trên.

Trả lời

0

Tôi có lý do tại sao nó không được triển khai. Trong tình huống của tôi, tôi sao lưu cơ sở dữ liệu và lưu trữ nó trong một tập tin, điều này sẽ thất bại trong việc kiểm tra mỗi lần. Vì vậy, điều này sẽ không thực tế để thực hiện chức năng này.

0

Bạn có thể viết tập lệnh sao lưu sau đó thanh toán. Sau đó, tạo một bí danh vỏ để nó chạy tập lệnh đó thay vì khi bạn nhập git checkout.

+0

Bạn có thể cho tôi ví dụ không? – asachanfbd

0

Trường hợp sử dụng trước khi thanh toán: xóa các tệp cục bộ không được phiên bản được tạo bởi tác vụ gulp watch:css để chúng được ghi đè sau khi thanh toán và được xây dựng lại bằng gulp.

Thay vào đó, tôi sẽ viết một kịch bản lệnh shell để lấy gốc thư mục gốc và sau đó xóa bất kỳ danh sách các tệp được tạo bằng gulp nào được tìm thấy.

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