2014-04-22 23 views
17

Tôi thường xuyên chạyTại sao git gọi tôi là "thông minh" khi tôi viết lại tin nhắn cam kết cuối cùng?

git commit --only --amend 

để xây dựng lại và các cam kết thông báo mới nhất của cam kết tôi đã thực hiện. Điều này sẽ làm việc không phân biệt thư mục làm việc của tôi là sạch hay không.

Hôm nay tôi nhận thấy rằng khi làm điều này, các hướng dẫn mặc định cho các văn bản cam kết thông điệp thể hiện trong core.editor của tôi bao gồm những nhận xét sau đây:

# Clever... amending the last one with dirty index. 

Ngoài việc có một chút của một nét duyên dáng quả trứng Phục sinh với nó, gì thông điệp này có phải cho tôi biết không? Đó có phải là một cách mỉa mai khi nói rằng tôi nên cẩn thận khi rối tung với các cam kết trước đó (đặc biệt là nếu có những thay đổi theo giai đoạn/không có hiện diện)? Và tại sao nó hiển thị ngay cả khi thư mục làm việc của tôi được sạch sẽ?

+3

@gwho HAHA ... Tôi biết 'git' có khả năng rất nhiều thứ nhưng NHẬN ĐƯỢC TRANG CỦA TÔI NÓ KHÔNG! ;) – itsjeyd

+0

Đây là một quả trứng Phục sinh GIGANTIC ... và chỉ trong khoảng thời gian Phục Sinh nữa! 'git grep -l" Thông minh ... sửa đổi cái cuối cùng với chỉ số bẩn "' trong một bản sao của [repo Git] (https://github.com/git/git): xuất hiện trong ['builtin/commit. c'] (https://github.com/git/git/blob/master/builtin/commit.c#L1129) và 'contrib/examples/git-commit.sh', cũng như một số tệp dịch cho các ngôn ngữ khác. –

+0

Dòng cho ['contrib/examples/git-commit.sh'] (https://github.com/git/git/blob/master/contrib/examples/git-commit.sh#L279). –

Trả lời

8

Tôi nghĩ rằng đây có thể là thông báo ban đầu cam kết:

git-commit --amend: two fixes. 

When running "git commit --amend" only to fix the commit log 
message without any content change, we mistakenly showed the 
git-status output that says "nothing to commit" without 
commenting it out. 

If you have already run update-index but you want to amend the 
top commit, "git commit --amend --only" without any paths should 
have worked, because --only means "starting from the base 
commit, update-index these paths only to prepare the index to 
commit, and perform the commit". However, we refused -o without 
paths. 

Signed-off-by: Junio C Hamano <[email protected]> 

Tôi không phải là rất git thành thạo, nhưng đối với tôi nó trông giống như một lời khen chân thành cho nhận xung quanh chỉ số bẩn bằng cách sử dụng --only mà không có đường dẫn

+0

+1 Thú vị. Không có gợi ý rằng các tác giả nghĩ rằng đó là một ý tưởng tồi để viết lại các tin nhắn cam kết trong khi chỉ mục bị bẩn! :) Không giải thích lý do tại sao người ta muốn tin nhắn hiển thị với một thư mục làm việc sạch mặc dù ... – itsjeyd

+2

Để tránh logic thêm tôi giả định. Các mã có liên quan dường như chủ yếu tập trung vào phân tích cú pháp các đối số được đưa ra, vì vậy tôi có thể thấy lý do tại sao bạn sẽ không muốn kiểm tra xem các chỉ số thực sự là bẩn cũng ... – monocell

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