如何使用JGit设置提交时间?



有没有办法用JGit设置提交时间?

我翻阅了 API,发现只能通过修改本地系统时间来完成。我想通过代码实现它。并且可以在win系统上正常运行。

可以使用CommitCommand设置提交的时间戳。请注意,名称、电子邮件和时间戳必须与PersonIdent对象一起指定。

例如:

Date date = ...
PersonIdent defaultCommitter = new PersonIdent(git.getRepository());
PersonIdent committer = new PersonIdent(defaultCommitter, date);
git.commit().setMessage("Commit with time").setCommitter(committer).call();

defaultCommitter保存 git 配置中定义的名称和电子邮件,时间戳是当前系统时间。使用第二个PersonIdent构造函数,名称和电子邮件取自defaultCommitter,时间戳被date覆盖。

在窗口中,可以通过从"管理员"命令提示符执行命令"date MM-dd-yy"来设置系统时间。

Java Snippet for Windows

//Set the Date 
SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yy");  
String setDate = "cmd /C date "+sdf.format(dateToSet);  
Process dateProc = Runtime.getRuntime().exec(setDate);  
dateProc.waitFor();//Might take a couple of seconds
//Set the Time  
SimpleDateFormat stf = new SimpleDateFormat("HH:mm:ss");  
String setTime = "cmd /C time "+stf.format(dateToSet);  
Process timeProc = Runtime.getRuntime().exec(setTime);  
timeProc.waitFor();//Might take a couple of seconds  

此命令只能以管理员身份执行。因此,您应该以管理员权限运行 java 代码。

最新更新