git checkout - 通过单词补丁?

ale*_*tor 13 git vim patch

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

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

Nev*_*nel 4

经过一番尝试后,我得到了这个答案,并弄清楚了如何将它用于结帐。我做了一些额外的更改来消除有时会打印的警告,并且必须修复参数解析以使其更加灵活。(由于这最初是一个管道脚本,其中参数由 git 核心进行预处理,因此在原始版本中没有必要)。

您可以使用此版本的文件原始文件以方便保存链接)并将其复制到您的某个位置PATH,如链接答案中所述。下载后请务必设置其可执行位 ( chmod +x path/to/file)。

假设您按照建议命名该文件git-add--interactive--words,则可以使用以下命令为其定义别名:

git config --global alias.cop add--interactive--words --patch=checkout
Run Code Online (Sandbox Code Playgroud)

现在你可以做类似的事情:

git cop HEAD~5进行交互式结账。(当前目录)5 次提交前,或者
git cop master -- docs/README以交互方式从分支主节点查看文档/自述文件

当然,您可以将别名命名为任何您想要的名称(我在这里选择 cop 来表示 ' c 'heck' o 'ut --' p 'atch)。

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