如前面的问题所述,您可以将提交拆分为较小的补丁.但是,这些答案建议git add -p,这可以完成工作,但如果我想要的是每个块的一次提交,则按照文件中的给定顺序进行繁琐.有没有办法实现这一点,自动?
你可以做点什么
echo -e "y\nq" | git add -p && git commit -m "automated"
Run Code Online (Sandbox Code Playgroud)
这样做:
echo y(接受第一个hunk),然后q(退出)下一个hunk,使用给定的消息进行提交.
循环直到git commit不返回成功:
s=0
i=1
while [ $s -eq 0 ]
do
echo -e "y\nq" | git add -p && git commit -m "automated $i"
s=$?
let i=$i+1
done
Run Code Online (Sandbox Code Playgroud)
或者在一行中:
s=0; i=0; while [ $s -eq 0 ]; do echo -e "y\nq" | git add -p && git commit -m "automated $i"; s=$?; let i=$i+1; done
Run Code Online (Sandbox Code Playgroud)
产生类似的提交
c5ba3 - (HEAD) automated 3
14da0 - automated 2
6497b - automated 1
Run Code Online (Sandbox Code Playgroud)