直接跳转到'git add-i'补丁命令(5)
我如何让git add-I直接以补丁模式启动,而不必键入5+Enter 我知道GitAdd-p,但这与它没有显示要从中选择的文件列表不同直接跳转到'git add-i'补丁命令(5),git,version-control,Git,Version Control,我如何让git add-I直接以补丁模式启动,而不必键入5+Enter 我知道GitAdd-p,但这与它没有显示要从中选择的文件列表不同 这很烦人,因为我想在git add-I和git commit之间快速切换,以将我的脏树变成一些漂亮的提交。您可以做的是“git add-p”并将文件名添加为命令行参数。 通过良好的制表符完成功能,只完成脏文件,其效果与从菜单中拾取脏文件一样。要实现这一点,对perl文件进行更改相当容易。如果您不喜欢修补所有文件的默认git add-p行为,我只建议您这样做 查
这很烦人,因为我想在git add-I和git commit之间快速切换,以将我的脏树变成一些漂亮的提交。您可以做的是“git add-p”并将文件名添加为命令行参数。
通过良好的制表符完成功能,只完成脏文件,其效果与从菜单中拾取脏文件一样。要实现这一点,对perl文件进行更改相当容易。如果您不喜欢修补所有文件的默认git add-p行为,我只建议您这样做 查找git add interactive的副本,并使用您喜爱的编辑器打开。转到patch_update_cmd子例程。在那里,有一个if语句测试$patch_模式。删除if语句的顶部,或将其设置为使条件始终计算为false。保存并测试 下面是我为完成这项工作所做的一个例子
if (0) {
@them = @mods;
}
else {
@them = list_and_choose({ PROMPT => 'Patch update',
HEADER => $status_head, },
@mods);
}
另一个可能的变化点是在文件的最底部。在if语句之后,您可以将$patch_mode更改为一些false值,效果应该是相同的
注意:如果您使用的是软件包管理器或类似的跟踪已安装软件包的工具,您可能会遇到一些问题,我不确定。如果您不介意打开gui,请使用git gui。我有git的tab completion,但它似乎不会只给我git“add-p”上的脏文件。否则,这可能是一个可行的选择。我仍然希望使用git add-I接口,因此没有参数的git add-p会自动假定您希望以补丁方式添加所有修改过的文件。这样做不会有太大的收获…谢谢,等我有更多的时间,我会试试的。如果我这样做,我会和维护人员谈谈,看看是否可以在之前将其合并到上游。我对维护自己的git fork不感兴趣: