正如之前的问题所解释的那样,您可以将提交拆分为较小的补丁。但是,这些答案建议使用git add -p
,虽然它可以完成工作,但如果我只想每个修补程序提交一个提交,并按照文件中给定的顺序执行,则会变得乏味。有没有什么办法能够自动实现它?
正如之前的问题所解释的那样,您可以将提交拆分为较小的补丁。但是,这些答案建议使用git add -p
,虽然它可以完成工作,但如果我只想每个修补程序提交一个提交,并按照文件中给定的顺序执行,则会变得乏味。有没有什么办法能够自动实现它?
echo -e "y\nq" | git add -p && git commit -m "automated"
以下是需要翻译的内容:
which does:
输出 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
或者在一行中:
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
生成类似以下的提交:
c5ba3 - (HEAD) automated 3
14da0 - automated 2
6497b - automated 1
bash
/ sh
解决方案而不是 git
,看起来有些 hackish,但如果没有本地替代方案的话,我可以接受。 - leftaroundaboutaddp
不是打错了或者别名吗? - Nick Volynkinecho -e "y\nq"
更改为 echo -e "s\ny\nq"
,以获得更小的Hunks。 - CDanUi=1
,echo -e "y\nq" | git add -p && git commit -m "automated $i"; let i=i+1
- undefined
git bisect
来找到它。 - leftaroundaboutgit add -p
提供的代码块感到满意。 - leftaroundabout