我有 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
答案 0 :(得分:0)
至少存在以下问题:
git show
,请将--
放在 $line
之后,因为提交ID是修订版。git format-patch
,-1
需要在--
之前(实际上是不必要的)。echo $line >>$LOGNAME
,否则它将尝试运行具有您的提交ID名称的程序。根据您要实现的目标,git cherry-pick $(tr '\n' ' ' commits.txt)
可能已经执行此操作:将所有列出的提交应用于当前分支。