如何创建适合在熔炉中复习的补丁?
git diff branch master --no-prefix > patch
这只生成了3行上下文。因此,我执行以下操作
git diff --unified=2000 branch master --no-prefix > patch
希望所有文件的行数将少于2000行。有没有一种方法可以告诉git在不指定最大行数的情况下将文件中的所有行都包含在修补程序中?
发布于 2016-11-19 02:11:04
我知道这很老,但我也不喜欢硬编码的解决方案,所以我测试了一下:
git diff -U$(wc -l MYFILE)
使用-U似乎是解决这个问题的唯一方法,但是使用行数可以保证即使是非常大的文件中的很小的更改,它也可以工作。
发布于 2018-05-24 03:52:46
得到了灵感,所以我添加了一个git别名。
$ cat ~/.gitconfig | fgrep diff
df = "!git diff -U$(wc -l \"$1\" | cut -d ' ' -f 1) \"$1\""
$ git df <file>
更新:
刚发现"git df“有时不能工作,由于执行git别名时目录更改。(参见git aliases operate in the wrong directory)。所以这是更新后的版本:
$ cat ~/.gitconfig | fgrep df
df = "! [ \"$GIT_PREFIX\" != \"\" ] && cd \"$GIT_PREFIX\"; ~/bin/git_df.sh"
$
$ cat ~/bin/git_df.sh
#!/bin/bash
for FILE in $@; do
git diff -U$(wc -l "${FILE}" | cut -d ' ' -f 1) "${FILE}"
done
exit 0
发布于 2017-01-02 20:36:30
https://stackoverflow.com/questions/13627598
复制相似问题