我想将文件名/路径添加到git提交中。我在数组中有文件路径,但是当我提交时,我得到:
fatal: pathspec 'dist/core.js dist/style.css bower.json Source/core.js' did not match any files
我的剧本早些时候有:
DIR=`dirname "$0"`
for file in "${COREFILES[@]}"; do echo $file="$DIR/$file"; done
for file in "${JSONFILES[@]}"; do echo $file="$DIR/$file"; done
TARGET_FILES=$(IFS=$' '; echo "${TARGET_FILES[*]}")
TARGET_FILES=( "${COREFILES[@]}" "${JSONFILES[@]}" )
,错误行为:
sh -c "cd $DIR && git add '$TARGET_FILES' && git commit -qm 'Current tag $TAG$SUFFIX.'"
更改文件中源代码的脚本的其他部分运行良好。当我做echo $TARGET_FILES
时,我得到一个字符串,空格分开,看起来一切都好......
任何指针我可能会丢失什么?或者如何做到这一点呢?
答案 0 :(得分:2)
git add '$TARGET_FILES'
应该是
git add "${TARGET_FILES[@]}"
这条线没有任何作用,可能没什么帮助:
TARGET_FILES=$(IFS=$' '; echo "${TARGET_FILES[*]}")
此外,我认为您不应该使用sh -c
:
cd "$DIR" && git add "${TARGET_FILES[@]}" && git commit -qm "Current tag $TAG$SUFFIX."
整体而言:
DIR=$(dirname "$0")
for file in "${COREFILES[@]}"; do echo "$file=$DIR/$file"; done
for file in "${JSONFILES[@]}"; do echo "$file=$DIR/$file"; done
TARGET_FILES=( "${COREFILES[@]}" "${JSONFILES[@]}" )
cd "$DIR" && git add "${TARGET_FILES[@]}" && git commit -qm "Current tag $TAG$SUFFIX."