linux – 无法添加用空格分隔的文件到git

linux – 无法添加用空格分隔的文件到git,第1张

概述我一直在编写一个脚本来使用git add添加未跟踪的文件. 我在我的脚本中使用的循环是 for FILE in $(git ls-files -o --exclude-standard); do git add $FILE git commit -m "Added $FILE" git push origin master done 脚本运行正常,直到它面对一个文件名,里面有空格. 我一直在编写一个脚本来使用git add添加未跟踪的文件.
我在我的脚本中使用的循环是

for file in $(git ls-files -o --exclude-standard); do  git add $file  git commit -m "Added $file"  git push origin master  done

脚本运行正常,直到它面对一个文件名,里面有空格.例如,我无法添加文件Hello 22.mp4.(请注意,Hello和22之间存在空格).上面的循环将文件作为2个单独的文件,Hello和22.mp4并退出并出错.
有人知道如何将其添加为单个文件吗?
谢谢

解决方法 发生了什么事情是shell正在将$(…)扩展为一堆单词,显然它解释了一个空间嵌入多个文件的文件.即使有引用git add命令的先前建议,它也行不通.所以循环使用错误的参数运行,如使用set -x输出所示:

ubuntu@up:~/test$ls -1a aubuntu@up:~/test$set -x; for file in $(git ls-files -o --exclude-standard); do git add "$file"; git commit -m "Added $file"; done+ set -x++ git ls-files -o --exclude-standard+ for file in '$(git ls-files -o --exclude-standard)'+ git add a...

正确的解决方案是引用git add $file并将git ls-files NulL分隔文件名,方法是将-z传递给git ls-files并使用带有空分隔符的while循环:

git ls-files -o --exclude-standard -z | while read -r -d '' file; do  git add "$file"  git commit -m "Added $file"  git push origin masterdone
总结

以上是内存溢出为你收集整理的linux – 无法添加用空格分隔的文件到git全部内容,希望文章能够帮你解决linux – 无法添加用空格分隔的文件到git所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1028929.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存