我们有一个项目,其中文件包含很长的行,不可能缩短它们。如果我们也可以使用git checkout --patch
此类文件,我们可以显着简化我们的工作流程。这不起作用,因为如果整个大行有任何变化,该行将被标记为已更改。
通常,我们使用git diff --word-diff
. 是否有可能checkout --patch
使用类似的格式进行工作?有没有其他方法可以解决我们的问题?
经过一番尝试,我得到了这个答案,并想出了如何将它用于结帐。我做了一些额外的更改来抑制有时会打印的警告,并且必须修复参数解析以更加灵活。(由于这最初是一个管道脚本,其中参数由 git 核心进行预处理,因此在原始版本中这不是必需的)。
您可以使用此版本的文件(原始文件以方便保存链接)并将其复制到您的某个位置PATH
,如链接答案中所述。请务必chmod +x path/to/file
在下载后设置其可执行位 ( )。
假设您git-add--interactive--words
按照建议命名文件,您可以使用以下命令为其定义别名:
git config --global alias.cop add--interactive--words --patch=checkout
现在您可以执行以下操作:
git cop HEAD~5
对 . (当前目录)5 次之前提交,或者
git cop master -- docs/README
从分支 master 以交互方式签出 docs/README
当然,您可以随意调用别名(我在这里选择 cop 表示 ' c 'heck' o 'ut --' p 'atch)。
我知道这个答案真的很晚了,所以它可能不再适用于你了,但是这个问题已经在未回答的列表上很久了,我今天才不得不弄清楚——也许它会帮助别人;)