17

Có tùy chọn như --author của git-commit cho git-merge không?Ghi đè tác giả trên git merge

Chúng tôi duy trì môi trường dàn dựng nơi thực hiện một số thay đổi. Một số hạn chế khiến chúng ta chỉ sử dụng một người dùng Linux để truy cập môi trường chạy thử.

Dù sao, chúng tôi là một nhóm nhỏ với sáng kiến ​​hợp tác và chúng tôi nói khi thực hiện cam kết, tác giả nào là tác giả sử dụng tùy chọn --itit git-commit. Tuy nhiên, một số lần chúng ta cần hợp nhất từ ​​các nhánh khác dẫn đến việc hợp nhất không phải ff. Điều này ngụ ý một cam kết được thực hiện khi thực hiện việc hợp nhất này.

Cách nào là cách tốt nhất để chỉ định tác giả theo cách thủ công cho hợp nhất cam kết trong trường hợp này?

Trả lời

21

Thứ nhất, ngăn chặn sự hợp nhất từ ​​việc tạo cam kết:

git merge --no-commit … 

Sau đó, thực hiện các cam kết bằng tay:

git commit --author="A. U. Thor <[email protected]>" 
6

Hãy thử git merge --no-commit ... và sau đó git commit --author ...

9

Bạn có thể --amend các tác giả sau đó nếu bạn đã thực hiện hợp nhất. như thế:

git checkout master 
git merge my_branch 
git commit --amend --author="My Nick <[email protected]>" 
git push origin master 

Điều này hoạt động như mong muốn và thêm tác giả được chỉ định vào cam kết hợp nhất. Không có phép thuật. :)

+0

tôi cảm thấy như câu trả lời của bạn là hoàn thiện nhất ở đây, mặc dù nó ngụ ý rằng --amend là cần thiết, khi nó không đúng. – TheMonarch

+0

Nó không? 'git merge' tạo một commit và thay đổi tác giả của commit đó bạn phải' git commit --amend'. – default

0

Một thay thế có thể là để thiết lập GIT_AUTHOR_NAME và GIT_AUTHOR_EMAIL biến môi trường:

GIT_AUTHOR_NAME="A. U. Thor" GIT_AUTHOR_EMAIL="[email protected]" git merge ... 
Các vấn đề liên quan