git可以自动将提交分成单个帅哥吗?

时间:2015-05-21 11:48:30

标签: git bash

As explained in previous questions,您可以将提交拆分为较小的补丁。但是,这些答案推荐git add -p,它完成了这项工作,但是如果我想要的是每个块的一次提交,则按照文件中的给定顺序进行繁琐。有没有办法实现这一点,自动?

1 个答案:

答案 0 :(得分:5)

您可以执行类似

的操作
echo -e "y\nq" | git add -p && git commit -m "automated"

确实:

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

或一行:

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