2013-05-03 83 views
5

我的同事将他的提交推送到我们的github存储库。不幸的是,他的系统日期比实时提前了大约20天。所以他的所有提交都有错误的日期。我想在这些提交中更改日期,但是基于这些错误的提交已经完成了一些额外的工作。如何在Git中更改上游的提交日期?

我发现这个问题:How can one change the timestamp of an old commit in Git?,其中的答案显示了我如何做到这一点,但我不认为这是安全的,因为承诺SHA将被改变,因为日期改变,我不知道会发生什么基于原始(错误日期)提交的更改。

因此,更改日期并推送更改的提交是否安全? github存储库中会发生什么?我认为全新的commtis将被创建,旧的将仍然在那里......

另一方面,如果我现在离开错误的提交,现在有什么危险?到目前为止,我只注意到github上的网络图不起作用...

+5

SHA哈希计算整个提交,包括其日期。所以你不能在不改变SHA哈希的情况下改变提交日期。 – Andomar 2013-05-03 10:53:10

+0

我知道这一点,但感谢您的确认。 – 2013-05-03 11:12:34

回答

1

您可以更改将导致新历史记录的提交。您可以让GitHub通过git push --force接受更改,这会更改历史记录。然而,这样做会给正在从回购协议中退出的其他开发者带来麻烦(他们可能不得不重新考虑它)。

历史是基于SHA发生时的情况。如果你看看rebase之后的日期,你会看到在'后面'发生的变化。因此,就回购或代码问题而言,没有危险。