2009-10-16 32 views
54

Tôi đã tổ chức lại các cam kết trong một chi nhánh trước khi nó được công khai khiến cho dấu thời gian của các cam kết theo thứ tự hỗn hợp. Tôi thà có tất cả chúng được ngày hôm nay chỉ với vài giây ở giữa.Thay đổi dấu thời gian trong khi khởi động lại chi nhánh git

Rõ ràng những dấu thời gian này sẽ không chính xác, nhưng vì đây là thời điểm mọi thứ được công khai, tôi thích rằng hơn một lịch sử hỗn hợp, thời gian khôn ngoan.

Vậy làm cách nào để tôi yêu cầu git tạo dấu thời gian mới khi đang rebasing?

Trả lời

77
git rebase --ignore-date 
+0

Tôi tin rằng hãy nhớ rằng nó liên quan đến việc thiết lập một số envvar. (Trên thực tế tôi đã kiểm tra điều đó trong manpage nhưng không tìm thấy gì cả. Nhưng tôi đã không đi qua các tùy chọn, bởi vì tôi đã chắc chắn nó liên quan đến một envvar.) – tarsius

+0

tarsius, tôi nghĩ bạn đang nói về 'git filter- branch', nhưng bạn không thực sự cần nó cho một nhiệm vụ đơn giản như thế này. –

+0

Thực tế nó không hoạt động với git từ nhánh chính: git rebase -i --ignore-date a7a86fe lỗi: tùy chọn không xác định 'bỏ qua ngày' Đường nối này là một lỗi tuy nhiên: trong manpage này tùy chọn thực sự được liệt kê. – tarsius

20

Trong trường hợp của tôi rebasing thay đổi timestamps giá trị CommitDate, vì vậy trong gitweb một loạt các tháng cam kết cũ xuất hiện như 4 ngày tuổi. Tôi đã tìm thấy cam kết cuối cùng với ngày chính xác và đã làm:

$ git rebase --committer-date-is-author-date SHA 
+6

Trong trường hợp bất kỳ ai khác đang tự hỏi: '--committer-date-is-author-date' [là bí danh cho] (https://git-scm.com/docs/git-rebase)' --ignore-date '. – maxschlepzig

+25

Không, không phải. Trong thực tế, nó là đối diện chính xác. Từ các tài liệu của ['git rebase'] (https://git-scm.com/docs/git-rebase):" _Các cờ này được chuyển tới 'git am' để dễ dàng thay đổi ngày của commits_" rebased_ ". Trong ['git am'] (https://git-scm.com/docs/git-am) nó nói:' --committer-date-is-author-date' "_ [...] cho phép người dùng nói dối về ngày bắt đầu bằng cách sử dụng cùng một giá trị với tác giả date_ "trong khi' --ignore-date' "_ [...] cho phép người dùng nói dối về ngày tác giả bằng cách sử dụng cùng một giá trị với ngày của người ghi ngày_" . –

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