过去日期的Git(GitHub)提交

41

我正在开发一个git项目(托管在GitHub上),使用的是GitHub for Windows。昨天,我完成了很多工作,但是GitHub for Windows崩溃了(显示无法进行提交),导致我无法提交。

我不想失去我的GitHub提交记录,所以我想知道是否有办法在过去的日期进行提交,并将其与我的GitHub同步(如果可能的话)。

另外:我已经将我的提交内容暂存到 git-bash 中,但尚未提交。


如何在Git中提交过去的代码?你可以使用git commit --date="YYYY-MM-DDTHH:MM:SS"命令来提交过去某个时间点的代码。其中,YYYY-MM-DD表示年月日,HH:MM:SS表示时分秒。 - ctor
@ctor 这个问题没有说明GitHub的结果……它会以同样的方式工作吗? - EpicDavi
1
@EpicDavi:是的,GitHub基本上像其他远程git存储库一样工作。然而,问题是如何将提交日期回溯到其他提交之前,这比仅仅回溯下一个提交要复杂得多。 - sleske
@sleske 这个问题有更简单的解决方法吗? - EpicDavi
4个回答

67

虽然问题 "如何在过去提交Git commit?" 解释了如何修改提交的作者日期:

git commit --amend --no-edit --date="Fri Nov 6 20:00:00 2015 -0600" 
运行此命令可在最后一次提交中使用注意到的时间戳修改上一次提交。使用 --no-edit 将保留原有消息不做任何更改。
问提出者问道:
该问题并未指定 GitHub 的结果...它是否能够以同样的方式工作?
是的:存在多个项目,可以让您生成和推送“过去完成”的提交,以更新您的贡献图表。例如,参见 contribution.iogithub-contributiongitgardener
您需要做的就是将这些修改后的提交推送到您的 GitHub 存储库的 master 分支上,就像我在这里提到的那样

1
@EpicDavi,这个命令旨在修复您最后一次提交的问题。因此,请先提交更改,然后再修改日期。 - VonC
为了帮助大家避免查找该文章中的信息,可以执行以下命令:git commit --amend --no-edit --date="Fri Nov 6 20:00:00 2015 -0600"。在提交之后,通过指定时间戳来修改最近一次提交。选项 --no-edit 将保留原有提交信息。 - James Skemp
@JamesSkemp 谢谢。我已经在答案中包含了该命令,以增加其可见性。 - VonC
1
是的,这对我来说可行!不会破坏我在 Github 上的提交连续记录。谢谢。 - akshay_sushir
1
@VonC 哦,我忘记改我的 GitHub 个人资料了,谢谢提醒。我已经改好了。 - akshay_sushir
显示剩余7条评论

33
git commit --allow-empty --date="Sat Nov 14 14:00 2015 +0100" -m '2 Dec commit'

它将创建带有提供日期的空提交


@std''OrgnlDave,你为什么认为答案不完整? - Yash
1
这只设置了“日期”。提交的“提交日期”仍然是系统时钟的当前时间。 - anion
你不需要在提交信息中使用双引号吗? - Upulie Han
终端不在乎单引号还是双引号。大多数情况下。 - Yash
哇,@Yash,我很高兴它出乎意料地起作用了。非常棒的答案,谢谢您。 - bilalmohib

1

只有在更改时区将系统日期回滚到昨天并且当天没有进行任何提交时才有效。

  • 打开日期和时间设置
  • 自动设置时区 - 关闭它
  • 使用时区下拉菜单选择一个将系统日期更改为昨天的时区。
  • 现在打开github并提交。 检查贡献图表。
  • 自动设置时区 - 打开它。

上述方法适用于我。 干杯!


1
我一直在寻找的确切解决方案!工作得像魅力一样!其他的解决方案只是改变了git中的提交日期,但在GitHub上却没有。谢谢! - Diyorbek Sadullaev

0

如果你使用像TortoiseGit这样的工具,你可以轻松地完成这个任务。因为它允许你在不必担心命令的情况下完成所有的操作,因为所有的命令都会被自动处理。

你所需要做的就是在项目文件夹内右键单击来处理你的上下文菜单。

The image you will see during commit stage before pushing it to your remote repo

This is last step after it is successfully pushed remotely:

编程愉快!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接