git checkout - 通过单词补丁?

时间:2013-01-10 08:43:48

标签: git vim patch

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

通常,我们会使用git diff --word-diff检查此类更改。有可能吗? 使checkout --patch以类似的格式工作?还有其他办法吗? 解决我们的问题?

1 个答案:

答案 0 :(得分:4)

经过一番尝试后,我得到this answer工作,并想出如何使用它来结帐。我做了一些额外的修改来压制有时会打印的警告,并且必须修复参数解析以使其更加灵活。 (由于这最初是一个管道脚本,其中参数由git核心预处理,因此在原始版本中不需要这样做。)

您可以使用this version of the fileraw file作为保存链接 - 方便)并将其复制到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以交互方式检出分支主文件中的docs / README

你可以把你想要的别名叫做别名(当然我选择了警察' c 'heck' o 'ut - ' p < /强>'ATCH)。

我知道这个答案真的很晚,所以它可能不再适用于你了,但这个问题已经在未经答复的清单上存在了很长时间以至于我今天 想出来 - 也许它会帮助别人;)