代码之家  ›  专栏  ›  技术社区  ›  Ferit

如何在Bash中使用Git递归提交每个文件?

  •  1
  • Ferit  · 技术社区  · 8 年前

    这是我尝试过的:

    #!/bin/sh
    
    for FILE in ${PROJECT_DIR}/*
    do
        echo ${FILE}
        git add ${FILE}
        git commit -m "initial commit ${FILE}" 
    done
    

    但当文件名包含空格或unicode字符时,它会失败。

    1 回复  |  直到 8 年前
        1
  •  3
  •   Inian    8 年前

    问题是你的报价中缺少合适的报价 git add

    shopt -s globstar        
    for fileToCommit in ${PROJECT_DIR}/**/*; do
        test -f "$fileToCommit" || continue 
        printf "%s\n" "${fileToCommit}"
        git add "${fileToCommit}"
        git commit -m "initial commit ${fileToCommit}" 
    done