如果我有一个GIT repo,其中许多编辑都是在没有提交的情况下完成的,我该如何最好地处理它?
我可以根据修改的日期添加文件。
我可以按编辑日期列出所有文件,如下所述:git状态-列出最后修改日期
但是
- 如果有很多文件,如何将具有特定日期(或日期范围(的所有文件馈送到
git add
命令中 - 删除的文件无法与日期绑定,因此需要进行单独提交。因此得到的";删除提交";以及";日期提交";将需要处于某种";提交组";我想。也许提交消息中从该日期删除的标记在另一个提交中
有什么最佳实践吗
您可以使用典型的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
,因为这需要天数,这可能比分钟数更容易计数。
根据需要插入已删除文件的提交。不过,无法判断它们是何时被删除的。
当然,只有当所有编辑的文件都是独立的时,这才有用。如果一个文件已经编辑了两次,并且第一次编辑后的更改应该已经提交,那么你就完蛋了,因为你不再有那种状态了。