合并分支后,当我尝试发出拉取请求时,github不再显示差异,但git diff仍会显示差异。
例如我有分支D,在分支H上创建了修补程序,将H合并到D,然后在D上创建了更多内容。现在git hub pull reuqest从H到D显示没有区别,但git diff HD显示差异。
我要做的是创建一个命令行工具,以查看哪些旧分支(可能有很多分支)没有代码差异来开发。现在我必须去github,做一个拉动reuqest并选择每个分支,看看是否有差异。
由于
答案 0 :(得分:14)
你可能想要"三点"语法:
git diff D...H
另见What are the differences between double-dot ".." and triple-dot "..." in Git diff commit ranges?
答案 1 :(得分:0)
我要做的是创建一个命令行工具,以查看哪些旧分支(可能很多)没有代码差异可以开发。
要实现此目标,您还可以使用:
git log --oneline --no-merges branch1 ^master
这将以{'1>上的 而不是{{1上的branch1
表示的一种行格式显示所有提交(不包括合并) }}分支。与^
或master
相似,如果没有要显示的更改(在本例中为提交),则输出为空白。
我还有更多示例in my dotfiles project here。例如:
上方的查找一个分支但不另一个上的所有GIT提交!
[关键字:git在一个分支上提交,但不在另一个分支上,git在一个分支上提交,不在一个分支上,但不在另一个分支上提交]
git diff
显示仅在branch1上的所有提交,但不显示在branch2或branch3上的所有提交,由于它们不是新更改,因此将省略所有合并提交!请参阅:Using Git, show all commits that are in one branch, but not the other(s) <==========超级有用,它可以看出分支更改的内容! ============ 例如,这非常有用,可以看到我们已添加到一个长期运行的发行分支“ branch1”中的所有功能提交,我们已在该分支中定期合并最新的master。现在,我们可以看到哪些提交在任何给定分支中,但不在master中!例如:git difftool
显示branch1中所有不在master中的非合并提交!git log --no-merges branch1 ^branch2 ^branch3
与上述相同,但每次提交仅显示一行! <=======很棒! (&SIMPLEST)========git log --no-merges branch1 ^master
与上面相同,但是使用git log --oneline --no-merges branch1 ^branch2 ^branch3
git别名来显示带有额外信息的压缩(单行)输出! <=======最好! (也许)========
git lg --no-merges branch1 ^branch2 ^branch3
来自此处:https://coderwall.com/p/euwpig/a-better-git-log。要将其“安装”为git别名,只需运行:
git lg
超级有用!