Tôi đang cố gắng viết một kịch bản vải thực hiện git commit
; tuy nhiên, nếu không có gì để cam kết, git thoát với trạng thái là 1
. Kịch bản triển khai thực hiện điều đó là không thành công và thoát. Tôi muốn phát hiện thực tế thất bại để cam kết, vì vậy tôi không thể chỉ cung cấp cho một tấm chăn vải bỏ qua cho git commit
thất bại. Làm thế nào tôi có thể cho phép bỏ qua các lỗi thất bại cam kết để triển khai có thể tiếp tục, nhưng vẫn gặp lỗi gây ra khi một cam kết thực sự thất bại?Làm thế nào để git cam kết không có gì mà không có lỗi?
def commit():
local("git add -p && git commit")
Lưu ý rằng 'git diff' là một lệnh" sứ "không nên được sử dụng để tạo tập lệnh. Điều bạn có thể muốn nhất là 'git diff-index --quiet HEAD || git commit -m 'bla''. Xem thêm [câu trả lời này] (http://stackoverflow.com/a/2659808/659002). – Holger
Để giải thích thêm, vấn đề với 'git diff --quiet --exit-code --cached' là nó sẽ đánh giá thành' 1' (false) chỉ cho các tệp đã sửa đổi chưa được dàn dựng để commit (các tệp chưa được thêm vào)). Bình luận được bình chọn lên là giải pháp tốt nhất để giải thích các tập tin và xóa mới. –
Nhận xét về 'git diff-index --quiet HEAD || git commit -m 'bla'' phải là câu trả lời trong câu hỏi này. –