簡體   English   中英

如何將最新的提交日期更改為最舊的?

[英]How to change the latest commit date to oldest?

所以我是 github 的新手。 我在 3 天前提交了我的 readme.md 文件,但我發現我的 readme.md 文件有錯誤。 我想編輯文件,但如果我編輯它,提交日期將更改為當前時間戳。 有什么方法可以在不將提交日期更改為當前時間戳的情況下編輯文件? 我想在提交更改時保留第一個提交日期。

所以我是 github 的新手。 我在 3 天前提交了我的 readme.md 文件,但我發現我的 readme.md 文件有錯誤。 我想編輯文件,但如果我編輯它,提交日期將更改為當前時間戳。

這有點對,但也有點不對。 最重要的是,它表明您將 Git 視為存儲文件——但 Git 不存儲文件。 Git 存儲提交

有日期的不是文件,而是提交 然后提交包含文件,但每次提交都包含每個文件 因此,如果您現在使用舊的readme.md文件進行新提交,則該新提交將當前時間作為其時間戳。 這只是新副本readme.md舊副本readme.md 這兩個文件具有相同的內容,因此基於內容對文件進行重復數據刪除的 Git 只存儲一次內容。

如果您將提交日期分配給文件,這意味着文件現在有兩個單獨的日期。 事實上,當然,提交日期是分配給commits 的 有兩個不同的提交,有兩個不同的日期。 兩個不同的提交可能具有相同(共享)的readme.md ,或者可能具有兩個不同的readme.md文件。

有什么方法可以在不將提交日期更改為當前時間戳的情況下編輯文件?

每當您進行新提交時,它都會獲得一個新的提交時間戳。 但事實上,它獲得了兩個新的提交時間戳。 這兩者之一非常容易控制,因為您可以使用--date= date為其指定特定的日期和時間戳。 另一個更難控制:它總是默認為“現在”。

因此,如果您願意,可以輕松地將兩個日期之一設置為您想要的任何值。 您可以使用命令行參數輕松設置的一個是作者日期 另一個日期是 Git 稱為提交者日期的日期,並且有理由避免將其設置為亂序1,但如果您有足夠的決心,Git 將允許您覆蓋它。 只需在運行git commit之前設置環境變量GIT_COMMITTER_DATE它采用與--date=選項相同的字符串值--date=會相信你的計算機的時鍾設置為該值,因此將使用它作為提交時間戳。

很少有充分的理由進行這種日期操作。 事實是文件不斷發展,包括 README 類型的文件,如果您修復一個,就像修復任何其他錯誤一樣。 該文件在舊提交中是錯誤的,並在此提交和每個包含該文件的后續提交中得到糾正。 諸如git blame類的工具會找到修復特定固定行的提交,並會不斷回溯歷史以查找前幾行的作者。


1原因之一是它會混淆人類。 一個更技術性的原因不太好描述,而且通常也不是那么有趣:對於特別大的提交圖,Git 最近正在增加一些優化,包括添加輔助圖數據,其中亂序提交者日期使事情變得更加復雜並且可能更慢.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM