Tôi đang thấy điều này trên kho GitHub này :
Điều đó có nghĩa là gì? Làm thế nào một cái gì đó có thể được "tác giả 7 ngày trước", và "cam kết 14 giờ trước"?
commit --date=
. Schwern giải thích nó rất độc đáo.
Tôi đang thấy điều này trên kho GitHub này :
Điều đó có nghĩa là gì? Làm thế nào một cái gì đó có thể được "tác giả 7 ngày trước", và "cam kết 14 giờ trước"?
commit --date=
. Schwern giải thích nó rất độc đáo.
Câu trả lời:
Git có một khái niệm riêng về tác giả (người đã viết mã) và người ủy quyền (người đã cam kết nó với kho lưu trữ). Tương tự như vậy có thể có ngày khác nhau cho cả hai. Họ thường giống nhau.
Bạn muốn chúng khác nhau chủ yếu nếu người viết mã hoặc gửi bản vá không có quyền truy cập vào kho lưu trữ như trong các dự án sử dụng danh sách gửi thư để gửi bản vá. Trong trường hợp này, người có quyền truy cập push sẽ áp dụng các bản vá và chạy git commit
với một trong hai --author
và --date
công tắc hoặc sử dụng các biến môi trường GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL và GIT_AUTHOR_DATE (tài liệu trong git-cam-cây .
Các trường hợp khác là sử dụng git cherry-pick
hoặc git rebase. Người đi làm là người thực hiện việc hái anh đào, và tác giả là tác giả của cam kết ban đầu. Git sẽ xử lý thiết lập danh tính tác giả và ngày cho bạn.
Bạn có thể xem thông tin này trong kho lưu trữ với git log --pretty=fuller
.
commit 21550561941b078ea1862b882ec89f26696ff5bb (HEAD, origin/master, origin/HEAD, master)
Author: thiagopnts <thiagopnts@gmail.com>
AuthorDate: Tue Nov 18 14:52:49 2014 -0200
Commit: Thiago Pontes <email@thiago.me>
CommitDate: Tue Nov 25 09:46:58 2014 -0200
open repository url if confirmed, closes #1
git rebase
cũng khiến ngày cam kết được cập nhật trong khi ngày tác giả vẫn giữ nguyên.
Điều này trông giống như một sự pha trộn giữa cách Git hoạt động với ngày và cách nó được tham chiếu với các từ khóa đóng của GitHub .
Git tách biệt giữa ngày cam kết và ngày tác giả. Trong Pro Git, họ đi sâu vào sự khác biệt :
Tác giả là người ban đầu viết tác phẩm, trong khi người viết là người cuối cùng áp dụng tác phẩm. Vì vậy, nếu bạn gửi một bản vá cho một dự án và một trong những thành viên cốt lõi áp dụng bản vá đó, cả hai bạn đều nhận được tín dụng - bạn là tác giả và thành viên cốt lõi là người đi làm.
Vì vậy, trong khi bản thân mã đã được cam kết / viết "7 ngày trước" (cục bộ), nó không được "áp dụng" hoặc vá vào mã cho đến "14 giờ trước", vì nó không được nhìn thấy trong điều khiển từ xa cho đến khi được tham chiếu gần thông điệp.