如何将默认命令更改为 git rebase 中的所有提交?
How can you change the default command to all commits in git rebase?
当您执行命令 git rebase -i anotherBranch
时,待办事项列表将显示所有标记为选择的提交。
有没有一种方法可以在所有提交中默认使用编辑而不是 pick
?我知道在你的编辑器中使用 replaceAll 并不难,但我想知道是否有默认的方法。
或者甚至更好,而不是打开默认的文本编辑器,显示所有标记为 "edit" 的提交,直接执行变基,就好像所有提交都标记为 "edit" 而无需打开编辑器。
你想做的应该用 git filter-branch
来完成。
git filter-branch
允许您 "move" 处理所有提交,然后做任何您想做的事。使用 filter-branch
您可以使用 --amend
或您希望执行的任何其他操作编辑您的提交
# use the --index-filter instead of the --tree-filter for better performance
git filter-branch --index-filter
请参阅 git 配置文档 sequence.editor,
git -c sequence.editor='sed -i s/pick/edit/' rebase -i anotherBranch
或
GIT_SEQUENCE_EDITOR='sed -i s/pick/edit/' git rebase -i anotherBranch
就是你想要的。
当您执行命令 git rebase -i anotherBranch
时,待办事项列表将显示所有标记为选择的提交。
有没有一种方法可以在所有提交中默认使用编辑而不是 pick
?我知道在你的编辑器中使用 replaceAll 并不难,但我想知道是否有默认的方法。
或者甚至更好,而不是打开默认的文本编辑器,显示所有标记为 "edit" 的提交,直接执行变基,就好像所有提交都标记为 "edit" 而无需打开编辑器。
你想做的应该用 git filter-branch
来完成。
git filter-branch
允许您 "move" 处理所有提交,然后做任何您想做的事。使用 filter-branch
您可以使用 --amend
或您希望执行的任何其他操作编辑您的提交
# use the --index-filter instead of the --tree-filter for better performance
git filter-branch --index-filter
请参阅 git 配置文档 sequence.editor,
git -c sequence.editor='sed -i s/pick/edit/' rebase -i anotherBranch
或
GIT_SEQUENCE_EDITOR='sed -i s/pick/edit/' git rebase -i anotherBranch
就是你想要的。