git format-patch无法使用bash脚本

时间:2013-05-22 08:11:18

标签: git bash git-bash

我有 commits.txt 文件中提供的提交列表,我需要准备这些提交的补丁列表,以便稍后将它们应用到我的分支机构。我在下面写了bash脚本: -

#!/tools/bin/bash

echo "Enter input file name"
read FILENAME

echo "Enter log file name"
read LOGNAME 

while read line;
do 
    git show -- $line > /dev/null
    if [ $? -eq 0 ] 
    then
        git format-patch -- $line -1
    else
        echo "NOT FOUND, Log commit ID"
        $line >> $LOGNAME
    fi
done < $FILENAME

我输入文件名为“commits.txt”,日志文件名为“mylog.txt”。 我没有从这些提交列表中获取* .patch文件。 任何线索,什么都出错?

谢谢, Prasanna NAVARATNA

1 个答案:

答案 0 :(得分:0)

至少存在以下问题:

  1. 对于git show,请将-- 放在 $line之后,因为提交ID是修订版。
  2. 对于git format-patch-1需要在--之前(实际上是不必要的)。
  3. 对于日志,请尝试echo $line >>$LOGNAME,否则它将尝试运行具有您的提交ID名称的程序。
  4. 根据您要实现的目标,git cherry-pick $(tr '\n' ' ' commits.txt)可能已经执行此操作:将所有列出的提交应用于当前分支。