13

我们有一个项目,其中文件包含很长的行,不可能缩短它们。如果我们也可以使用git checkout --patch此类文件,我们可以显着简化我们的工作流程。这不起作用,因为如果整个大行有任何变化,该行将被标记为已更改。

通常,我们使用git diff --word-diff. 是否有可能checkout --patch使用类似的格式进行工作?有没有其他方法可以解决我们的问题?

4

1 回答 1

4

经过一番尝试,我得到了这个答案,并想出了如何将它用于结帐。我做了一些额外的更改来抑制有时会打印的警告,并且必须修复参数解析以更加灵活。(由于这最初是一个管道脚本,其中参数由 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)。

我知道这个答案真的很晚了,所以它可能不再适用于你了,但是这个问题已经在未回答的列表上很久了,我今天才不得不弄清楚——也许它会帮助别人;)

于 2013-02-03T17:06:18.267 回答