这个问题真的让我很困惑,我的搜索没有找到任何有用的信息,因此我发布此问题是为了帮助任何其他遇到此问题的可怜人。
我今天正在开发一个 Android 存储库,并进行了一些提交和 merge 以及所有常规工作。
我曾经注意到,我们的 git 服务器上的票证下列出的提交日期是 8 天前。该提交还不到 8 天,我从头开始创建它,并在不到 15 分钟前将其推送到票证中。
我想,这很奇怪,怀疑是不是服务器时间不对。确认并非如此后,我更仔细地查看了这些提交。 SourceTree(我使用的 git gui)中的日期看起来都很好。知道提交可以有单独设置的创作日期,我使用 git log --pretty=fuller 来查看和比较日期。
C:\Users\Jonathan\StudioProjects\BTVehicle>git log --pretty=fuller -n 2
commit 29ee84b938c016ff747d088c9c8d038f5ed99e72
Merge: f462490 7a76ac3
Author: Jonathan
AuthorDate: Wed May 25 16:19:18 2016 -0500
Commit: Jonathan
CommitDate: Wed May 25 16:19:18 2016 -0500
Merged #416 "CursorIndexOutOfBoundsException: Index 1 requested, with a size of 1"
commit 7a76ac3903380d7e1bde693947da84cab328cc7a
Author: Jonathan
AuthorDate: Tue May 17 12:55:07 2016 -0500
Commit: Jonathan
CommitDate: Wed May 25 16:19:14 2016 -0500
Added what could be a fix for the CursorIndexOutOfBoundsException as described in ticket #416.
上面的 merge 提交是在我的服务器上完成的。时间是准确的。另一个是在我的本地计算机上完成的(通过 Android Studio 的源代码控制集成),并且作者时间不正确。
这是怎么发生的?我如何确定 future 的日期?我的发现如下。
最佳答案
TL;DR;
Android Studio IDE 中的 Cherry-Picking 创建了一个更改列表,当该列表处于事件状态时,会导致任何提交的作者日期等于原始的 Cherry-picked 提交。
完整说明
当我今天早些时候在 Android Studio 中挑选提交时,问题就开始了。
如果您使用 VCS 日志在 Android studio 中选择要进行 cherry-pick 的提交,则会 pop 提交对话框,以便您可以在提交之前查看更改。如果您随后从该对话框提交更改,则不会有任何问题。
但是,如果您取消提交对话框(因为您想在提交之前进行更改或任何其他原因),则会出现一个新的 change list将被创建并将包含在cherry-pick中更改的文件。
同时,IDE 会提示非事件更改列表中的文件被修改。所以我切换到了cherry-pick变更集。
现在,当您打开提交更改对话框时,作者将设置在右上角。但没有提及时间。我发现这个字段实际上通常是空白的。
我发现,在此精选更改列表处于事件状态时所做的任何提交都会设置不正确的作者日期。解决方案是简单地在 Android Studio 中更改为不同的或新的更改列表。
如何确定提交日期
就我的情况而言,我认为我的一些提交的作者日期不正确只是一种不便,而且不值得花费时间或精力来修复。尤其是这种情况,因为我已经推送了一堆更改,并且不想倒回一堆东西。
但是对于那些只需要更改上次提交日期或想要更多信息的人来说,this page有一些关于修改日期的很好的说明。
关于git - 通过 Android Studio 提交的 Git 作者日期不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37448651/