Tôi muốn biết một trong hai người dùng đã thực hiện thay đổi tệp khi github liệt kê cả hai. Tuy nhiên, bản ghi git chỉ chứa UserA.UserA đã cam kết với UserB 13 ngày trước về github nghĩa là gì?
Trả lời
UserA là người thực sự thực hiện các thay đổi. UserB là người đã cam kết những thay đổi đó cho chi nhánh này. tức là nếu UserA cam kết các thay đổi của mình đối với branch1, UserB đến, cam kết một vài thay đổi đối với branch2, rebases branch1 với branch2. Bây giờ, các cam kết trên cùng trong branch1 sẽ cho thấy rằng UserA đã cam kết những thay đổi này với UserB.
Chỉnh sửa: Điều này chủ yếu xảy ra trong quá trình rebasing và chọn cherry, vì tác giả và người đóng góp có thể khác trong các quy trình này.
Ngoài ra còn có 'git commit --author =
Câu trả lời của @ venkatKA là chính xác và mang tính mô tả nhưng tôi nghĩ tôi sẽ thêm một vài chi tiết.
git cat-file -p HEAD
có thể được sử dụng để in ra thông tin về các cam kết
tree d85ed3c3a055c95445898a5119ea0a532459fdsf
parent 0b6ed951b2c04b4134c91ffa053b4330edfdffc1
author AuthA <[email protected]> 1487356245 +0000
committer AutbB <[email protected]> 1487356245 +0000
Nếu bạn muốn sửa chữa committers lịch sử (ví dụ nếu bạn đang thay đổi danh tính của bạn) sau đó bạn có thể sử dụng:
git filter-branch -f --tree-filter "GIT_COMMITTER_NAME='New Author'; GIT_COMMITTER_EMAIL='New Author'"
Các ý kiến tiêu chuẩn về việc phá vỡ lịch sử phá vỡ và lý do tại sao chủ nghĩa revisionism là một ý tưởng tồi được áp dụng.
Bạn cũng có thể 'git show --format = full' hoặc' git show --format = fuller' (hoặc sử dụng cùng các đối số '--format' với' git log') để xem cả tác giả và người commit. – torek
Một lý do khác có thể xảy ra sau sự cố này là sử dụng các biến số en2 $GIT_AUTHOR_NAME
và $GIT_AUTHOR_EMAIL
.
Khi các biến này được đặt, chúng ghi đè phần tác giả của mọi cam kết trở lên bất kể giá trị user.name
và user.email
cấu hình được đặt cục bộ. Trong trường hợp này, khi bạn nhấn git cat-file -p HEAD
, tác giả hiển thị giá trị của $GIT_AUTHOR_NAME
và người ghi hiển thị giá trị của cấu hình user.name
cục bộ. Vì vậy, bạn sẽ cần phải xóa các dòng xuất các biến này trong .bashrc
hoặc .zshrc
hoặc nếu bạn muốn giữ lại các dòng đó nhưng không muốn điều này xảy ra, hãy chèn unset GIT_AUTHOR_NAME && unset GIT_AUTHOR_EMAIL
trước khi chạy git commit.
- 1. Git (GitHub) cam kết vào ngày trước
- 2. Cách khắc phục ngày cam kết GITHUB?
- 3. smartgit xóa cam kết và trở về cam kết trước
- 4. Android Studio không cam kết với GitHub
- 5. Tại sao một số cam kết được hiển thị là cam kết "trên GitHub"?
- 6. "Cam kết thay đổi hoặc giấu chúng" nghĩa là gì?
- 7. GitHub cam kết với thư mở rộng
- 8. Dĩa trên GitHub có nghĩa là gì?
- 9. SVN cam kết với ngày/giờ cũ
- 10. Ngày 180 ngày trước là gì?
- 11. Nhật ký Git trước một số ngày cam kết
- 12. muốn bỏ nhiều cam kết trong github
- 13. cam kết không hiển thị trên github
- 14. "Git đẩy các bản cập nhật không nhanh về phía trước đã bị từ chối" nghĩa là gì?
- 15. Thay đổi thông báo cam kết SVN trở về trước?
- 16. thiết lập trước cam kết móc jshint
- 17. Cách thay đổi "Cam kết" sang GitHub bằng GitHub Desktop
- 18. [&] có nghĩa là gì trước chức năng?
- 19. vô tình đã cam kết trong git
- 20. Sửa đổi một cam kết đó không phải là trước đó cam kết
- 21. "CL" có nghĩa là gì trong thư cam kết? nó đứng để làm gì?
- 22. Cách phê chuẩn cam kết trên Github
- 23. Cam kết tham chiếu chéo trong github
- 24. không "~" nghĩa là gì trước khi enums
- 25. Git - ID cam kết git là gì?
- 26. `WIP` trên cam kết stash là gì?
- 27. "Chi nhánh này là 1 cam kết trước, 1 cam kết đằng sau chính" trong Github khi đang sử dụng "Mô hình phân nhánh Git thành công"
- 28. Xóa lịch sử cam kết Github
- 29. Xóa cam kết trước cam kết cụ thể
- 30. nhận cam kết từ một ngày cụ thể trong git dựa trên ngày cam kết
Bạn có chắc chắn "bản ghi git" không bao gồm cả UserA và UserB không? Có thể có một giá trị khác nhau cho "Committer" và "Author". – Thilo