Tôi đã tìm kiếm các bản sao và trong khi một số có tiêu đề tương tự, tôi chưa tìm thấy bất kỳ ai gặp vấn đề giống như tôi, vì vậy tại đây đi.Cách thêm tập tin vào chỉ mục trong móc trước git
Tôi đã viết một tập lệnh chạy trên pre-commit
và sử dụng đầu ra của git status --porcelain
để biên dịch bất kỳ tệp LESS nào trong dự án của tôi đã thay đổi. Phần này hoạt động tốt. Nhưng tôi muốn các tệp .css được bao gồm trong cam kết hiện tại. Vì vậy, ngoài việc chạy trình biên dịch, tập lệnh của tôi chạy git add <filename>
. Và đây là nơi mọi thứ trở nên phức tạp.
Tệp là được thêm vào chỉ mục nhưng không phải là chỉ mục của cam kết hiện tại. Vì vậy, nếu tôi sửa đổi style.less
và chạy git commit -a
(hoặc thủ công git add style.less
) trình biên dịch sẽ tạo ra style.css
và style.min.css
và thêm chúng vào cam kết hiện tại. Nhưng hành vi mà tôi đã nhận thấy chỉ là style.less
được cam kết, mặc dù hai tệp .css
được thêm vào chỉ mục cho lần commit tiếp theo.
Vì vậy, câu hỏi của tôi là: có cách nào để thêm tệp vào cam kết trong móc trước khi cam kết để chúng có hiệu lực cho cam kết đó không? Lưu ý rằng trước khi hook pre-commit được chạy, hai tệp .css
này không được sửa đổi, vì vậy tôi không thể thêm chúng trước đó. Tôi cũng biết tôi có thể thoát khỏi móc với một tình trạng khác không để cam kết bị hủy bỏ nhưng các tập tin được thêm vào, nhưng tôi hy vọng để tránh điều đó. Bất kỳ ý tưởng tốt hơn?
Vì tệp CSS không phải là tệp nhị phân, chúng chỉ là các tệp văn bản tĩnh. Các tệp được tạo không được đặt trong điều khiển phiên bản vì chúng thường gây xung đột hợp nhất nơi bạn không thực sự có cách tốt để giải quyết chúng (tệp nhị phân), nhưng đối với tệp CSS bạn hiếm khi gặp sự cố đó. Tôi không muốn phải cài đặt một trình biên dịch LESS trên máy chủ web của chúng tôi để làm điều đó sau khi hợp nhất/cập nhật. Tuy nhiên, tất cả những gì đã nói, nó đã chứng minh được một cách dễ dàng hơn để hoàn thành những gì tôi đã cố gắng làm, mặc dù nó không phải là lý tưởng. –
Tại sao đây là câu trả lời được chấp nhận? Điều này không giải quyết được vấn đề gì cả. – frhd
Tôi đoán anh ấy đã chấp nhận câu trả lời của tôi là "bạn làm sai", bởi vì trong trường hợp này nó giải quyết được vấn đề của anh ta (cho là không trả lời câu hỏi của anh ta). Nếu anh ta không kiểm tra các tập tin LESS ở nơi đầu tiên, các "làm thế nào để tôi slipstream chúng vào cam kết" vấn đề biến mất. – plaugg