title author date CreateTime categories
git 修改commit日期为之前的日期
lindexi
2019-11-19 08:53:16 +0800
2018-2-13 17:23:3 +0800
git

我在之前修改了一个文件,但是没有commit,现在我想要commit,日期为那天的日期
git 修改日期的方法很简单,因为有一个命令--date 可以设置 git 提交时间。
默认的 git 的提交时间会受到系统的时间的影响,如果想要系统的时间不会影响到 git 的提交时间,请使用本文的方式,自己指定提交的时间

使用git自定义时间的提交格式:

git commit --date="月 日 时间 年 +0800" -am "提交"

如果我要把日期修改为 2016.5.7 那么我可以使用下面代码

git commit --date="May 7 9:05:20 2016 +0800" -am "提交"

其中我希望大家知道的:

各个月份的缩写,不然每次都需要去百度一下

January, Jan.
February, Feb.
March, Mar.
April, Apr.
May, May.
June, Jun.
July, Jul.
August, Aug.
September, Sep.
October, Oct.
November, Nov.
December, Dec.

当然,如果你想写为程序,那么我还可以送你一点代码

            new List<string>()
{
"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug",
"Sep","Oct","Nov","Dec"
};

如果需要使用 C# 调用 git ,可以使用我之前写过的代码:

    public class GitControl
{
public GitControl(string fileDirectory)
{
FileDirectory = fileDirectory;
} /// <summary>
/// git的文件夹
/// </summary>
public string FileDirectory
{
set;
get;
} public string Branch
{
set;
get;
} public string Origin
{
set;
get;
} public string Add(string file = ".")
{
string str = "add " + file;
return Control(str);
} private string ConvertDate(DateTime time)
{
//1. 一月 January (Jan)2. 二月 February (Feb)
//3. 三月 March (Mar)
//4. 四月 April (Apr)
//5. 五月 May (May)
//6. 六月 June (Jun)
//7. 七月 July (Jul)
//8. 八月 August (Aug)
//9. 九月 September (Sep)
//10. 十月 October (Oct)
//11. 十一月 November (Nov)12. 十二月 December (Dec)
List<string> temp = new List<string>()
{
"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug",
"Sep","Oct","Nov","Dec"
}; //StringBuilder str = new StringBuilder();
// git commit --date = "月 日 时间 年 +0800" - am "提交" //git commit --date = "May 7 9:05:20 2016 +0800" - am "提交"
return $"--date=\"{temp[time.Month - 1]} {time.Day} {time.Hour}:{time.Minute}:{time.Second} {time.Year} +0800\" ";
} public string Commit(string str = null, DateTime time = default(DateTime))
{
string commit = " commit";
if (time != (default(DateTime)))
{
commit += " " + ConvertDate(time);
} if (string.IsNullOrEmpty(str))
{
if (time == default(DateTime))
{
time = DateTime.Now;
}
str = time.Year + "年" + time.Month + "月" +
time.Day + "日 " +
time.Hour + ":" +
time.Minute + ":" + time.Second;
}
commit += " -m " + "\"" + str + "\"";
//commit = FileStr() + commit;
return Control(commit);
} public string Push()
{
//git push origin master
if (string.IsNullOrEmpty(Branch))
{
Branch = "master";
} if (string.IsNullOrEmpty(Origin))
{
Origin = "origin";
string str = $"push {Origin} {Branch}";
return Control(str);
}
else
{
string str = $"push {Origin} {Branch}";
str= Control(str);
if (Origin != "origin")
{
Origin = "origin";
str += Control($"push {Origin} {Branch}");
}
return str;
}
} private string _gitStr = "git -C {0}"; private string FileStr()
{
return string.Format(_gitStr, FileDirectory) + " ";
} private string Control(string str)
{
str = FileStr() + str;
// string str = Console.ReadLine();
//System.Console.InputEncoding = System.Text.Encoding.UTF8;//乱码 Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false; //是否使用操作系统shell启动
p.StartInfo.RedirectStandardInput = true; //接受来自调用程序的输入信息
p.StartInfo.RedirectStandardOutput = true; //由调用程序获取输出信息
p.StartInfo.RedirectStandardError = true; //重定向标准错误输出
p.StartInfo.CreateNoWindow = true; //不显示程序窗口
p.StartInfo.StandardOutputEncoding= Encoding.UTF8;//Encoding.GetEncoding("GBK");//乱码
p.Start(); //启动程序 //向cmd窗口发送输入信息
p.StandardInput.WriteLine(str + "&exit"); p.StandardInput.AutoFlush = true;
//向标准输入写入要执行的命令。这里使用&是批处理命令的符号,表示前面一个命令不管是否执行成功都执行后面(exit)命令,如果不执行exit命令,后面调用ReadToEnd()方法会假死
//同类的符号还有&&和||前者表示必须前一个命令执行成功才会执行后面的命令,后者表示必须前一个命令执行失败才会执行后面的命令 //获取cmd窗口的输出信息
string output = p.StandardOutput.ReadToEnd();
output += p.StandardError.ReadToEnd(); p.WaitForExit(); //等待程序执行完退出进程
p.Close(); return output + "\r\n";
}
}

如果修改过程需要修改上一次提交的日期,可以添加 --amend 的参数,如果要修改不是上一次的提交,而是很久的提交,我暂时没找到如何做,如果你知道怎么做,请告诉我

本文用的时间是 RFC 2822 格式,这个格式的时间是 月 日 时间 年 +0800 而除了这个格式,还可以使用 ISO 8601 格式,如下面代码

2005-04-07T22:13:13

在 C# 可以使用 DateTime.UtcNow.ToString("s") 将时间输出

2019-11-19-git-修改commit日期为之前的日期的更多相关文章

  1. git 修改commit 的注释

    git 修改commit 的注释 一:最新的一次提交 当你不小心,写错了提交的注视/信息,该如何处理呢.理论上,SCM是不应该修改历史的信息的,提交的注释也是.    不过在git中,其commit提 ...

  2. git 修改commit日期为之前的日期

    我在之前修改了一个文件,但是没有commit,现在我想要commit,日期为那天的日期 git commit --date="月 日 时间 年 +0800" -am "提 ...

  3. [git]修改commit

    git commit --amend 修改上一个的commit信息. git reset commit_id 修改commit,同时改变commit历史,可用于合并commit. git revert ...

  4. git修改commit message及vi编辑器的简单使用

    1.修改commit信息 git commit --amend 2.进入vi编辑器修改 ‘i’进入insert模式,输入文字: ‘esc’回到命令模式,删除文字,移动光标: ‘:’进入底行模式,‘wq ...

  5. git 修改commit信息

    可以使用 git commit --amend 修改上一次的提交信息. 操作示例 如下: git commit --amend 后会出现编辑界面,如下 可以在最上面红框的地方,修改要提交的信息,然后按 ...

  6. git修改commit说明

    当发现说明写错了时,执行git commit --amend,然后修改说明即可.

  7. Git 修改commit message

    1.git log --oneline -5 查看最近5次commit的简要信息,输出信息为:简短commitID commit_message,可以根据需要查看最近n次的提交 也可以git log ...

  8. cisco ssh实验--附带配置脚本-2019.11.19

    cisco ssh实验

  9. 通过git rebase修改commit message

    今天发现一个项目的git commit message中的单词拼错了,需要修改一下.但这样简单的修改,需要通过git rebase才能完成. 首先要git rebase到需要修改message的那个c ...

随机推荐

  1. CF 549B Looksery Party

    题面 解题思路 如果a数组全部>0,那么都不去即可.从这个角度出发,每次选出a[i]为0的,让它们去更新a数组,相当于拓补排序. 代码 #include<iostream> #inc ...

  2. GitBook的使用方法

    ---恢复内容开始--- 由于近期工作中使用gitbook编写讲义,现把出现的问题总结下: 1 . gitbook的安装 Gitbook与word等办公软件类似,能够编写文档,Gitbook中编写文档 ...

  3. angular1.0 $http jsonp callback

    $http.jsonp(sDUrl,{cache:false,jsonpCallbackParam:'callback'}); https://stackoverflow.com/questions/ ...

  4. hibernate分页功能

    设置开始位置无效 设置终止位置是可以的 设置完之后,并没有分页 问题解决 https://blog.csdn.net/qq_39859824/article/details/77902488 http ...

  5. win10 下安装 neo4j

    1.neo4j介绍 neo4j是基于Java语言编写图形数据库.图是一组节点和连接这些节点的关系.图形数据库也被称为图形数据库管理系统或GDBMS.详细介绍可看Neo4j 教程 2.安装Java jd ...

  6. Apache-Shiro分布式环境配置(与redis集成)(转)

    原文戳我 前段时间项目要用到权限控制的相关模块,经过讨论决定采用Apache下面的Shiro开源框架进行身份校验与权限控制,因项目需部署在集群环境下,所以需要分布式的支持,故配置了Redis作为权限数 ...

  7. django中模板

    一.创建模板目录和模板html文件 # /templates/应用名称/html文件集合 #模板目录:创建项目根目录下面,和manage.py工具在同一层#在模板目录下面分别创建各个应用的模板目录#最 ...

  8. 【CS Round #44 (Div. 2 only) A】Frequent Numbers

    [链接]h在这里写链接 [题意] 在这里写题意 [题解] 大水题 [错的次数] 0 [反思] 在这了写反思 [代码] /* */ #include <cstdio> #include &l ...

  9. 架构 - 业务流程管理介绍(BPM)

    什么是业务流程 维基百科中说,业务流程是为特定的对象(客户)创造价值的过程,这一过程由一系列相关联.有组织的活动或任务组成.企业和组织中的流程常常划分为三种基本类型: 管理流程——对系统运作进行管制. ...

  10. 精密MRAM芯片制造系统

    MRAM是一种非常复杂的薄膜多层堆叠,由10多种不同材料和超过30层以上的薄膜与堆叠组成,部分薄膜层的厚度仅达数埃,比人类的发丝还要薄500000倍,相近于一颗原子的大小,如何控制这些薄膜层的厚度.沉 ...