Làm cách nào để chỉnh sửa thông báo cam kết không chính xác với TortoiseGit?


Câu trả lời:


160

Nếu người cam kết là người đứng đầu chi nhánh hiện tại, điều đó thật dễ dàng.

  1. Menu ngữ cảnh -> Cam kết Git
  2. Đánh dấu vào hộp kiểm "Sửa đổi cam kết cuối cùng"
  3. Sửa thông điệp cam kết của bạn
  4. đồng ý

Nếu người cam kết là người đứng đầu chi nhánh khác, hãy chuyển sang chi nhánh đó trước.

  1. Menu ngữ cảnh -> TortoiseGit -> Chuyển đổi / Thanh toán
  2. Chọn tên chi nhánh
  3. đồng ý
  4. Làm theo các bước 1-4 ở trên để sửa đổi thông báo cam kết

Nếu cam kết ở giữa mà không có bất kỳ hợp nhất nào giữa đầu, bạn cần phải đặt lại, sửa đổi và chọn anh đào

  1. Menu ngữ cảnh -> TortoiseGit -> Nhật ký
  2. Chọn cam kết -> Menu ngữ cảnh -> Đặt lại
  3. Hard Reset ( điều này sẽ loại bỏ tất cả công việc có trong các cam kết phía trên cam kết đã chọn cũng như mọi thay đổi chưa được cam kết trong thư mục làm việc )
  4. đồng ý
  5. Làm theo các bước 1-4 ở trên để sửa đổi thông báo cam kết
  6. Chọn từ đầu đến một cam kết phía trên nó -> Menu ngữ cảnh -> Cherry-pick
  7. Tiếp tục

12
Tôi thực sự nhớ "Chỉnh sửa thông báo nhật ký" của TortoiseSVN. Bất kỳ cơ hội nào họ sẽ thêm tính năng như vậy?
Benoit Blanchon

3
Tôi bị lạc ở bước 6, ý bạn là "Chọn từ đầu đến một cam kết phía trên nó" có phải là một tùy chọn trong menu ngữ cảnh không?
Flethuseo

1
mất trên bước 6 quá. không có anh đào chọn tùy chọn bất cứ nơi nào, và tôi có thể không nhìn thấy cam kết trên trong trường hợp bất kỳ (chỉ cần nói làm việc thay đổi dir, trong đó có thực sự không có)
Robert Ivánc

13
Không đồng ý vì tôi nghĩ rằng các đề xuất trong trường hợp cam kết đang ở giữa đã khiến tôi hủy các thay đổi mã của mình cho đến cam kết đó, đó là một vài tuần làm việc.
Samuel

8
CẢNH BÁO: Sử dụng "Tạo chi nhánh tại phiên bản này" để đặt tên chi nhánh tạm thời trước khi đặt lại về cam kết bạn muốn sửa đổi. Nếu không, bạn có nguy cơ mất tất cả các cam kết trên thời điểm này. (Nếu điều này đã xảy ra với bạn, git reflogsẽ giúp bạn lấy lại chúng).
Steve Pitchers

19

Đối với trường hợp khi commit đang ở giữa chừng, tôi thực sự khuyên bạn không nên làm theo hướng dẫn do linquize cung cấp, hãy xem phần bình luận bên dưới câu trả lời của anh ấy để biết lý do.

  1. Bạn có thể sử dụng dòng lệnh git với TortoiseGit và nó sẽ không gây ra bất kỳ sự cố nào: Tôi có thể sử dụng đồng thời các công cụ Git dòng lệnh và TortoiseGit không? .

  2. Video youtube này giải thích nó rất hay: http://youtu.be/4YjKY0u9Z6I . Về cơ bản, sử dụng git rebase -i và sau đó chỉ cần "nhập lại từ khóa" cho thông báo cam kết.

Cập nhật: Tôi tin rằng bạn có thể lấy lại các cam kết bị mất từ ​​khôi phục cài đặt gốc do linquize đề xuất, hãy xem câu trả lời của Wayne tại đây: Làm cách nào để tôi có thể sắp xếp lại / kết hợp các cam kết bằng Git rebase? .


7
Đã đồng ý. git khiến tôi mất nhiều thời gian không thể tin được để học cách sử dụng, SVN quá đơn giản. Khái niệm git rất đơn giản, nhưng cách sử dụng của nó thì không.
Samuel

TortoiseGit cũng cung cấp rebase tương tác, bạn không cần phải sử dụng dòng lệnh cho việc này.
Peter

13

Tôi sẽ nói rằng phương pháp tốt nhất để sửa đổi bất kỳ thông báo cam kết nào là sử dụng force rebasetùy chọn trong rùa.

Xem câu trả lời này về Cách sắp xếp lại các cam kết (rebase) với TortoiseGit . Phương pháp tương tự có thể được sử dụng để chỉnh sửa thông báo cam kết.

  • Khi bạn đang ở trong hộp thoại rebase, hãy nhấp chuột phải vào cam kết bạn muốn chỉnh sửa và chọn Edittùy chọn. Bạn có thể chọn chỉnh sửa nhiều cam kết.
  • Bấm vào Start Rebasenút.
  • Rebase sẽ tạm dừng ở các cam kết mà bạn đã đánh dấu Edit
  • Nhấp vào Commit Messagetab ở dưới cùng và chỉnh sửa tin nhắn
  • Nhấp vào Amendnút để tiếp tục
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.