'git add'基于文件上次修改日期?



如果我有一个GIT repo,其中许多编辑都是在没有提交的情况下完成的,我该如何最好地处理它?

我可以根据修改的日期添加文件。

我可以按编辑日期列出所有文件,如下所述:git状态-列出最后修改日期

但是

  1. 如果有很多文件,如何将具有特定日期(或日期范围(的所有文件馈送到git add命令中
  2. 删除的文件无法与日期绑定,因此需要进行单独提交。因此得到的";删除提交";以及";日期提交";将需要处于某种";提交组";我想。也许提交消息中从该日期删除的标记在另一个提交中
    有什么最佳实践吗

您可以使用典型的find | xargs构造:

# up to 2 days (48 hours) ago
find . -type f -mmin +2880 -print0 | xargs -0 git add
git commit
# up until yesterday (24 hours ago)
find . -type f -mmin +1440 -print0 | xargs -0 git add
git commit
# all the rest
git commit -a

-mmin占用分钟数,在数字前面加上+表示"0";不止于此";。如果您的编辑以天为单位,您可以使用-mtime,因为这需要天数,这可能比分钟数更容易计数。

根据需要插入已删除文件的提交。不过,无法判断它们是何时被删除的。

当然,只有当所有编辑的文件都是独立的时,这才有用。如果一个文件已经编辑了两次,并且第一次编辑后的更改应该已经提交,那么你就完蛋了,因为你不再有那种状态了。

最新更新