2013-04-25 35 views
20

Vì vậy, tôi đã tạo ra 3 cam kết trên một máy không được cấu hình cho git (không có tác giả hoặc email) và tôi muốn thay đổi 3 commit đó (chưa được đẩy) thành tác giả của chúng.Git tác giả thay đổi rebase?

Tôi biết git commit --amend có thể thay đổi tác giả, nhưng làm cách nào tôi có thể làm điều đó với 3? Tôi biết rebase có thể thay đổi tin nhắn. Có cách nào để thay đổi tác giả không?

Trả lời

16

Bạn có thể sử dụng tính năng rebase tương tác. Câu trả lời từ bài đăng này cung cấp cho bạn một ví dụ: Change commit author at one specific commit.

Tác giả yêu cầu thay đổi tác giả theo cam kết cụ thể, nhưng việc rebasing tương tác có thể được sử dụng để thay đổi tác giả của nhiều cam kết nếu bạn edit tất cả các cam kết mà bạn muốn thay đổi.

kỹ thuật hữu ích tiềm năng khác liên quan đến rebasing tương tác có thể được tìm thấy trong cuốn sách Git Pro http://git-scm.com/book/en/Git-Tools-Rewriting-History, bao gồm cán nát, redordering, chỉnh sửa tin nhắn, vv

+0

Các Git chương Pro bạn cũng tham khảo đề cập đến việc sử dụng 'git filter-branch --commit-filer' để làm điều tương tự, nhưng trừ khi bạn thành thạo trong bash scripting, nó có thể khó sử dụng hơn so với rebase tương tác. –

+0

@ColdHawaiian Cảm ơn bạn đã bình luận. Tôi đã cố gắng cung cấp một tham chiếu toàn diện hơn cho công cụ rebasing tương tác và nên nêu rõ hơn. – Yang

+0

Vì lý do nào đó, điều này dường như không hoạt động. Nó không thay đổi tác giả, chỉ là thông điệp –

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