【发布时间】:2020-07-03 02:16:17
【问题描述】:
我有一个较旧的项目,我在其中修改了许多文件(超过一百个)。删除了几个,重命名了一大堆,删除了很多,等等。这批更改中可能有 10 个或更多的提交。如何编写提交命令来选择,例如,只选择那些重命名的文件:
git commit "all renamed files" -m "Renamed files."
我想尽量避免这样做:
git commit file1 file2 file3 -m "Renamed files."
...因为太多了。我也可以提交一个价值 (git commit folder1 . . .) 的文件夹,但不幸的是,文件夹中有一些文件不需要提交。
我已经接受了提供的答案,但不得不稍微修改命令:
git status --porcelain | grep -E '^(.R|R.)' | \
cut -b4- | awk '{print $1}' | xargs git commit -m "Bulk renamed files."
原因是因为运行git status --porcelain | grep -E '^(.R|R.)' | cut -b4-,例如输出(这里有一行来演示):source/__init__.py -> site/__init__.py。当我使用xargs 运行commit 命令时,它不被接受,大概是因为-> . . . 部分。所以我在这里使用awk 只选择第一个块,这很好用。谢谢!
【问题讨论】:
标签: regex git rename git-commit