2013-11-22 14 views
150

Tôi đã đẩy một cam kết từ xa nhưng bây giờ tôi nhận ra rằng thông báo cam kết không chính xác. Tôi muốn thay đổi thông báo cam kết nhưng AFAIK không thể thực hiện được. Vì vậy, tôi quyết định tạo cam kết trống với thông điệp chính xác:Đẩy các cam kết trống sang điều khiển từ xa

git commit --allow-empty 

Có bất kỳ bất lợi/hậu quả của việc đẩy các cam kết trống không? Có bất kỳ vấn đề tôi có thể phải đối mặt trong tương lai vì cam kết trống này ??

+9

Điều đó rất hữu ích đối với tôi, cố gắng ép buộc móc đẩy mà không cần phải làm gì cả! Cảm ơn! –

+0

Kiểm tra câu hỏi tương tự này http://stackoverflow.com/questions/6218199/git-commit-with-no-commit-message – Montaro

Trả lời

16

Có bất kỳ nhược điểm/hậu quả nào khi đẩy các cam kết trống không?

Ngoài sự nhầm lẫn cực đoan, ai đó có thể hiểu tại sao có một loạt các cam kết không có nội dung trong đó trên chính, không thực sự.

Bạn thể thay đổi cam kết rằng bạn đẩy lên từ xa, nhưng sha1 của cam kết (về cơ bản nó là số id) sẽ thay đổi vĩnh viễn, mà làm thay đổi cây nguồn - Sau đó bạn sẽ phải làm một git push -f lại điều khiển.

47

Bạn sẽ không phải đối mặt với bất kỳ hậu quả khủng khiếp nào, chỉ lịch sử sẽ có vẻ khó hiểu.

Bạn thể thay đổi các cam kết thông báo bằng cách làm

git commit --amend 
git push -f 

NHƯNG này sẽ ghi đè lên lịch sử từ xa với máy của bạn, có nghĩa là nếu ai kéo mà repo trong khi đó, người này đang diễn ra rất giận bạn ...

Chỉ cần làm điều đó nếu bạn là người duy nhất truy cập vào kho.

+3

Có thats lý do tại sao tôi ưa thích đẩy trống cam kết – mrutyunjay

+4

@mrutyunjay nếu có cơ hội người khác kéo repo , sau đó có, tôi nghĩ rằng đó là một lựa chọn tốt hơn. –

+0

Cảm ơn bạn ..! +1 – mrutyunjay

9

Miễn là bạn rõ ràng tham chiếu đến cam kết khác từ cam kết trống thì sẽ ổn thôi. Một cái gì đó như:

Commit message errata for [commit sha1] 

[new commit message] 

Như những người khác đã chỉ ra, điều này thường thích hợp hơn để ép buộc cam kết đã sửa.

11

đẩy các cam kết, dù có trống hay không, gây ra các móc git cuối cùng được kích hoạt. Điều này có thể làm hoặc không có gì hoặc có hậu quả phá vỡ thế giới.

+2

Đây là một quan sát được đánh giá thấp. Có, các cam kết trống có thể vượt trội hơn để sửa đổi các cam kết đã đẩy, nhưng chúng không thể được giả định là có hiệu lực phụ nếu có thể có các móc nối tại chỗ. – wintermute92

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