git commit的–date参数的格式是什么?
我需要覆盖git的提交date,所有的文档指向–date参数,但是留下一个没有线索的适当的格式。 我已经尝试了所有我能想到的排列方式,而且每个人都会遇到“致命的:无效的date格式:”错误。
Git 2.6+(2015年第三季度)添加一个新选项。
请参阅提交e4f031e (2015年6月30日),并提交 Jeff King( peff ) 提交的aa1462c , 提交a5481a6 , 提交b7c1e11 (2015年6月25日) 。 
  (由Junio C gitster合并- gitster – in commit d939af1 ,2015年8月3日) 
引入“格式”date模式
这直接将格式提供给
strftime。
除了更加灵活一些之外,主要优势在于你的系统strftime可以更多的了解你的语言环境的首选格式(例如,如何拼写星期几)。
--date=format:...将格式传给你的系统strftime。
使用--date=format:%c以系统区域设置的首选格式显示date。
有关格式占位符的完整列表,请参阅strftime手册。
原始答案(2014年中)
  --date选项(2009年12月的提交02b47cd引入,git1.7.0)使用与GIT_AUTHOR_DATE相同的格式,在提交96b2d4f中testing了date格式: 
在那里你可以看到接受的各种格式:
-   Mon, 3 Jul 2006 17:18:43 +0200
-   iso8601: 2006-07-03 17:18:43 +0200
-  当地时间: Mon Jul 3 15:18:43 2006
-  简称: 2006-07-03(不在1.9.1中,在2.3.0中工作)
- 
相对:见提交34dc6e7 : 5.seconds.ago, 2.years.3.months.ago, '6am yesterday'
- 
原始的:参见commit 7dff9b3 (git 1.6.2,2009年3月) 
 内部原始git格式 – 从时代加时区开始的秒数
 (换句话说:'date +"%s %z"'''格式)
-  默认: Mon Jul 3 17:18:43 2006 +0200
ADTC 在评论中询问和回答:
它接受2006-07-03 15:18:43为地方?
是的,它工作,它会自动采取当地时区。
用这种格式,我不需要打扰星期几(Sun,Mon等)。
 date格式在Documentation / date-formats.txt ( man git commit )没有logging,并且非常“人性化”地被parsing。 
唯一可行的是读取date.c下的源文件并尝试。
VonC在2.3.0中未提及的要点:
- 
数字只能根据位数来parsing: - 
2位:19YY,YY> = 73,当前月份,date和时间。 错误或当前date,否则。 
- 
4位数字:YYYY,YYYY> = 1973,<= 2099 
- 
> 8个数字到一些小的限制(TODO哪个?):UNIX时间(自1970年以来的秒数) 
 
- 
- 
@<digits> +0000:UNIX时间。这似乎是直接inputUNIX时间的最佳方法。 2 ** 64 – 2(TODO为什么不是-1?)是不会导致提交错误的最大值。 邮票存放在C长。 git log在1970年显示非常大的值(大约2^55TODO在哪里?),尽pipegit cat-file -p HEAD显示存储了正确的数字,所以它似乎是date转换的限制。对于大于 2**63 - 1任何事情,最大的正数签名为long,试图推送到GitHub失败,并date causes integer overflow。 在GitHub (GitHub 由于某种原因无法显示真正的大date ) 提交,VonC指出,这是一个耻辱,因为它阻止否定date是否有可能设置一个git提交具有1970年之前的时间戳? 可以用来将旧的软件迁移到Git。 
- 
tea:今天17时:-)