2013-04-20 26 views
188

Tôi là người mới đối với cả hai git và GitHub. Tôi đã thiết lập mọi thứ cục bộ trên máy Mac, vì vậy bây giờ tôi có thể đẩy các cam kết tới GitHub qua git (trên dòng lệnh, không phải ứng dụng Mac).Làm cách nào để thực hiện thay đổi với cả "thông báo" và "mô tả" từ dòng lệnh?

Khi tôi đẩy cam kết trực tiếp từ giao diện web GitHub (ví dụ một cách nhanh chóng sửa chữa một lỗi đánh máy), tôi có cơ hội để "bình luận" các cam kết, và GitHub mang lại cho tôi một cam kết tiêu đề và một cam kết mô tả. Tôi thấy điều này rất hữu ích.

Tuy nhiên, khi tôi git push từ máy cục bộ, git mở trình chỉnh sửa mặc định của tôi: vì vậy tôi viết nhận xét cam kết, sau đó GitHub tự động chia nó thành tiêu đề và "nội dung". Có cách nào để khá bình luận cam kết từ thiết bị đầu cuối quá?

Trả lời

381

Ngoài ra còn có một cách khác để thẳng và rõ ràng hơn

git commit -m "Title" -m "Description .........."; 
+9

Vâng, một hack tốt đẹp, nhưng tôi thích [câu trả lời dưới đây] (http://stackoverflow.com/a/36427485/3810038) bởi vì nó cung cấp cho tôi một cách để gõ một mô tả dài với newlines, một cách dễ dàng. –

25
git commit -a -m "Your commit message here" 

sẽ nhanh chóng cam kết tất cả các thay đổi với thông báo cam kết. Git cam kết "tiêu đề" và "mô tả" (như bạn gọi cho họ) là không có gì nhiều hơn chỉ là dòng đầu tiên, và phần còn lại của các dòng trong thông báo cam kết, thường được phân cách bởi một dòng trống, theo quy ước. Vì vậy, bằng cách sử dụng lệnh này sẽ chỉ cam kết "tiêu đề" và không có mô tả.

Nếu bạn muốn nhắn tin dài hơn, bạn có thể làm điều đó, but it depends on which shell you use.

Trong bash cách nhanh chóng sẽ là:

git commit -a -m $'Commit title\n\nRest of commit message...' 
+3

Điều đó không làm việc, nó cho thấy tôi '\ n' trong phạm đăng nhập! (có thể vì tôi đã cam kết từ hệ thống Windows). Edit: Ok, tôi đã bỏ qua cú pháp '$ '...'' của bạn. Có lẽ điều đó sẽ hiệu quả. – Ela782

0

Trong trường hợp bạn muốn cải thiện các cam kết thông báo với tiêu đề và cơ thể sau khi bạn tạo ra cam kết, bạn có thể reword nó. Cách tiếp cận này hữu ích hơn vì bạn biết mã nào chỉ sau khi bạn viết nó.

git rebase -i origin/master 

Sau đó, cam kết của bạn sẽ xuất hiện:

pick e152ce2 Update framework 
pick ffcf91e Some magic 
pick fa672e1 Update comments 

Chọn cam kết mà bạn muốn xây dựng lại và và lưu lại.

pick e152ce2 Update framework 
reword ffcf91e Some magic 
pick fa672e1 Update comments 

Bây giờ, bạn có cơ hội thêm tiêu đề và nội dung, nơi dòng đầu tiên sẽ là tiêu đề.

Create perpetuum mobile 

Redesign laws of physics with a pinch of imagination. Open a wormhole in 23 dimensions. Add protection to avoid high instability. 
107

Sử dụng lệnh git commit mà không có bất kỳ cờ nào. Chỉ cần git commit. Sau đó, biên tập Vim sẽ mở

enter image description here

Để bắt đầu gõ nhấn Insert trên bàn phím của bạn và bây giờ bạn có thể tạo một tốt cam kết với mô tả làm thế nào để bạn muốn. Ví dụ

enter image description here

Một khi bạn đã viết tất cả những gì bạn cần, bạn cần phải quay trở lại chế độ bình thường, đối với báo chí rằng chính Esc.Bây giờ đóng trình soạn thảo với lưu các thay đổi Vim bằng cách gõ trên bàn phím :wq (w - viết, q - bỏ)

enter image description here

và nhấn Enter.

On GitHub này cam kết sẽ trông như thế này

enter image description here

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