git - 通过 Android Studio 提交的 Git 作者日期不正确

标签 git android-studio intellij-idea cherry-pick

这个问题真的让我很困惑,我的搜索没有找到任何有用的信息,因此我发布此问题是为了帮助任何其他遇到此问题的可怜人。

我今天正在开发一个 Android 存储库,并进行了一些提交和 merge 以及所有常规工作。

我曾经注意到,我们的 git 服务器上的票证下列出的提交日期是 8 天前。该提交还不到 8 天,我从头开始创建它,并在不到 15 分钟前将其推送到票证中。

Git server showing date

我想,这很奇怪,怀疑是不是服务器时间不对。确认并非如此后,我更仔细地查看了这些提交。 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中更改的文件。

Changelists

同时,IDE 会提示非事件更改列表中的文件被修改。所以我切换到了cherry-pick变更集。

Prompt to switch changelist

现在,当您打开提交更改对话框时,作者将设置在右上角。但没有提及时间。我发现这个字段实际上通常是空白的。

Author in dialog

我发现,在此精选更改列表处于事件状态时所做的任何提交都会设置不正确的作者日期。解决方案是简单地在 Android Studio 中更改为不同的或新的更改列表。

proper commit dialog proper change list selected

如何确定提交日期

就我的情况而言,我认为我的一些提交的作者日期不正确只是一种不便,而且不值得花费时间或精力来修复。尤其是这种情况,因为我已经推送了一堆更改,并且不想倒回一堆东西。

但是对于那些只需要更改上次提交日期或想要更多信息的人来说,this page有一些关于修改日期的很好的说明。

关于git - 通过 Android Studio 提交的 Git 作者日期不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37448651/

相关文章:

java - 如何纠正这个: Content is not allowed in prolog

java - 如何将变量传递给 .property 文件中引用的 JVM?

java - 运行应用程序时的 IntelliJ MyClass.class(没有这样的文件或目录)

angular - 有没有办法在 Typescript 和 Angular 中为 "let variable"类型提示 IDE?

android - 如何在android studio中启用设备框架?

android-studio - 将 Android Studio 升级到 3.4 后无法连接 adb

Git Flow 流程发送功能进行测试,只部署特定功能上线

git - merge 到 master 忽略 master 上的错误提交

python - 我应该如何设置版本之间的版本号?

git - 在 docker 容器中获取代理后面的 git