2012-05-23 14 views
97

Có cách nào chỉnh sửa trực tuyến thông điệp cam kết trong GitHub.com, sau khi gửi không?Chỉnh sửa thông báo cam kết git trong GitHub

Từ dòng lệnh, người ta có thể làm

git commit --amend -m "New commit message" 

như đề xuất một cách chính xác trong another question.

Thử git pull và sau đó git push đã hoạt động (không có bất kỳ cam kết nào khác đã can thiệp vào thời gian trung bình).

Nhưng nó có thể được thực hiện thông qua trang web GitHub không?

+0

Xin xem @ [câu trả lời] DanGreen-Leipciger của (https://stackoverflow.com/a/41513487/465053) mặc dù nó không phải là chấp nhận một. – RBT

Trả lời

68

Không, điều này không trực tiếp thực hiện được. Hàm băm cho mọi cam kết Git cũng được tính toán dựa trên thông điệp cam kết. Khi bạn thay đổi thông báo cam kết, bạn thay đổi băm cam kết. Nếu bạn muốn đẩy cam kết đó, bạn phải ép buộc đó (git push -f). Nhưng nếu ai đó đã kéo cam kết cũ của bạn và bắt đầu một công việc dựa trên cam kết đó, anh ta sẽ phải rebase công việc của mình vào cam kết mới của bạn.

+0

Tôi cũng có thể làm git kéo và sau đó git đẩy và nó làm việc. Nhưng dường như không có cách nào trực tuyến. – PNS

+0

Vẫn không thể kể từ ngày 5 tháng 4 năm 2016 – bigT

+0

Và tôi đoán nó sẽ không được ưu tiên cao, vì bạn sẽ thay đổi lịch sử cam kết của một chi nhánh đã được xuất bản mà bạn không bao giờ nên làm (ngoại trừ nếu bạn chắc chắn là 200%) không ai khác có nhánh này trên máy cục bộ của anh ta). – dunni

29

Bạn cần phải git push -f giả định rằng không ai đã rút cam kết khác trước đó. Cẩn thận, bạn đang thay đổi lịch sử.

+0

Git kéo và sau đó git đẩy làm việc là tốt. Cảm ơn! – PNS

+2

chắc chắn nhưng nếu bạn '--amend' bạn đã thay đổi lịch sử. – three

+0

Điều đó đúng. :-) – PNS

3

Không, bởi vì thông báo cam kết có liên quan với cam kết SHA/băm và nếu chúng tôi thay đổi thì SHA cam kết cũng bị thay đổi. Cách tôi sử dụng là tạo một nhận xét về cam kết đó. Tôi không thể nghĩ theo cách khác.

0

Tôi đang đối mặt với cùng một vấn đề.

Xem trong github của bạn cho một chi nhánh cụ thể và bạn sẽ đến để biết id cam kết của cam kết đầu tiên trong nhánh đó. thực hiện rebase cho điều đó:

git rebase -i

trình chỉnh sửa sẽ mở ra. Thực hiện theo dõi các cam kết của bạn từ giao diện người dùng github và trình chỉnh sửa mở và thay đổi các thông báo.

66

hướng dẫn GitHub của để làm điều này:

  1. Trên dòng lệnh, chuyển tới kho chứa cam kết mà bạn muốn sửa đổi.
  2. Nhập git commit --amend và nhấn Enter.
  3. Trong trình chỉnh sửa văn bản, hãy chỉnh sửa thông báo cam kết và lưu cam kết.
  4. Sử dụng lệnh git push --force example-branch để buộc đẩy qua cam kết cũ.

Nguồn: https://help.github.com/articles/changing-a-commit-message/

+5

Phải là câu trả lời đúng. – mcranston18

+0

"Điều hướng đến repo" có nghĩa là gì? Đối với tôi, một cam kết là trong một chi nhánh, cùng với các cam kết khác. Và bây giờ tôi đã đẩy mọi thứ để khu vực làm việc của tôi sạch sẽ. Làm thế nào để tôi đến đó để thay đổi tin nhắn? Xin lỗi - Tôi là một newbie với điều này. – pgr

+0

Nó có nghĩa là để đi thư mục trong một môi trường * nix. I E. nếu bạn repo được gọi là "bar" và nó sống trong một thư mục có tên là "foo" nằm trong thư mục gốc của máy, hãy mở terminal và gõ 'cd/foo/bar'. Bây giờ bạn đã sẵn sàng cho bước 2 –