Git将大量文件(图像)更改为小写

时间:2015-07-10 13:55:53

标签: git

我有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 ...

3 个答案:

答案 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/')是新文件名

有用的主题:

git rename many files and folders

How to rename large number of files