Git 如何将cherry-pick-Xignore所有空间配置为Gerrit的默认空间?

Git 如何将cherry-pick-Xignore所有空间配置为Gerrit的默认空间?,git,gerrit,Git,Gerrit,在前言中,我在日常工作中同时使用Git和Gerrit。一个常见的工作流程是挑选正在审查的补丁集,解决与合并的任何冲突,然后进行更多更改并修改提交,然后再将新补丁集推回到Gerrit 我发现git cherry pick在默认情况下很难处理琐碎的空白更改,并且使用-Xignore all space的合并策略选项通常可以显著减少补丁集cherry pick期间需要解决的冲突量。我希望这始终是樱桃采摘期间的默认行为,而不必指定选项,但尚未找到在.gitconfig中设置此选项的方法 显而易见的解决方

在前言中,我在日常工作中同时使用Git和Gerrit。一个常见的工作流程是挑选正在审查的补丁集,解决与合并的任何冲突,然后进行更多更改并修改提交,然后再将新补丁集推回到Gerrit

我发现git cherry pick在默认情况下很难处理琐碎的空白更改,并且使用-Xignore all space的合并策略选项通常可以显著减少补丁集cherry pick期间需要解决的冲突量。我希望这始终是樱桃采摘期间的默认行为,而不必指定选项,但尚未找到在.gitconfig中设置此选项的方法

显而易见的解决方案是简单地为Git创建一个别名。但是,当使用Gerrit时,有一个方便的cherry pick命令,可以通过单击以下形式的按钮将其复制到剪贴板:

git-fetchssh://user@hosturl:port/remote/repo/path refs/changes/id/change/patch set&&git cherry pick FETCH\u HEAD

需要用别名替换“cherry pick”部分与需要添加“-Xignore all space”选项一样不方便,就像我现在所做的一样。手动输入Gerrit补丁集引用的详细获取是荒谬的,不幸的是,我没有能力更改Gerrit项目或任何非本地的东西


是否有一种方法可以通过git配置默认的cherry pick合并策略选项,或者使用钩子脚本或触发器来完成此操作?

在与bash兼容的shell中解决此问题的方法是添加别名
别名git cp='git cherry pick-Xignore all space'

将其添加到您的.bashrc和source~/.bashrc完成


请记住一点:别名中不允许有空格。

请参见第三段。我是一个邪恶的Windows用户,喜欢用鼠标在一次或两次点击中输入git命令;-)我正在慢慢地被转换,因为显然有些东西你不能从gui轻松地驱动。是“refs/changes/id/change/patch set”文字,还是某个动态名称?动态的。第一部分取决于您要从gerrit获取的项目、分支、更改和修补程序集。您在哪里输入命令?也许您应该解决问题的根源。空白处。我们也有同样的问题(C++),现在我们使用自动格式化我们的代码,我几乎可以说这是您需要做的最重要的事情之一,以便能够跨分支选择更改并节省大量的时间work@uncletall讽刺的是,自动插件(codemaid)的使用是什么导致了如此多的冲突,因为缩进和空白错误在现有源代码中得到修复。