我有一个git分支(例如主线),我想在另一个开发分支中合并.或者我呢?
为了确定我是否真的想合并这个分支,我想看看合并将做什么的某种预览.最好能够查看正在应用的提交列表.
到目前为止,我能想到的最好的是merge --no-ff --no-commit,然后diff HEAD.
有没有办法限制git diff更改的文件?
我想看看两个提交之间的差异,但排除一个或另一个中不存在的路径(添加/删除).以下Perl单线程说明了我想要的大部分内容:
git diff master.. | perl -lnwe 'print unless /^(new|deleted) file/../^diff/ and not /^diff/'
Run Code Online (Sandbox Code Playgroud)
但是这会diff --git a/path b/path为新文件或删除的文件留下线条.另外,如果我不需要解析它会更好(如果任何hunk包含匹配/ ^ diff /的任何内容,也会失败).
我尝试的另一种选择是:
git diff --name-status (args) | perl -lnwe 'print if s/^M\s+//' | xargs git diff (args) --
Run Code Online (Sandbox Code Playgroud)
它的输出更好,但仍然感觉很乱.
假设我在git中有一个branch0。
从这个branch0我创建了一个branch1并开始处理它。一段时间后,我对这个分支进行了更改1。同时branch0正在被改变。
如果我将branch1 的最新版本与branch0 进行比较,我将看到分支之间的所有更改,而不仅仅是与branch1 中的更改相关的更改。
例如,如果在branch0中修改了文件,但在branch1上未修改该文件,则会git diff显示对该文件的更改。但是该文件在branch1 上没有被修改。所以我希望它在差异中被忽略。
从某种意义上说,我想git diff在branch1和branch0之间执行 a 操作,但仅限于在branch1中修改的文件。
在git中可以吗?我可以想象在 bash 中执行此操作,列出所有文件并逐一进行比较。但想知道 git 是否有更简单的方法。