我有100张图片需要从.JPG重命名为.jpg。我已经写了一个gulp任务并将它们全部重命名。现在Git没有认识到这种变化。
我在单个文件上找到了这个: I change the capitalization of a directory and Git doesn't seem to pick up on it
但是我不希望手动对每张图片都这样做是否可以使用s.th.像这样
git mv **/*/.JPG **/*.temp
git mv **/*/.temp **/*.jpg
图像全都是差异。文件夹!例如。 src/a, src/a/b src/b ...
答案 0 :(得分:1)
for line in $(find -type f -name '*.JPG'
| sed 's@\(.*\)\.JPG@\1.JPG \1.jpg/')
do
git mv $line
done
如果您已经重命名了文件,则只需要git add
。
由于它们没有改变git
会注意到它们都具有相同的斑点
对象和setup the renaming。如果你没有任何其他未知或
更改了git working dir中的文件,一种可能的方法是:
for path in $(git status --porcelain | sed 's/.. //')
do
git add "$l"
done
答案 1 :(得分:1)
@jvdm给出的答案稍有改动,以使第一个代码段工作。
for line in $(find -type f -name '*.JPG'
| sed 's@\(.*\)\.JPG@\1.JPG \1.jpg/')
do
git mv $line
done
答案 2 :(得分:1)
这有效:
for file in $(git ls-files '*.JPG');
do git mv -f $file $(echo $file |sed 's/\.JPG/\.jpg/'); done
git ls-files
列出所有文件=> '*.JPG'
过滤器git mv -f
移动文件(-f = force,这是必需的)$file
返回原始文件名$(echo $file |sed 's/\.JPG/\.jpg/')
是新文件名有用的主题: