我想合并两个分开了一段时间的分支,并想知道哪些文件被修改了。

穿过此链接:http://linux.yyz.us/git-howto.html(移动到web.archive.org),这非常有用。

我遇到的比较分支的工具有:

git diff主机。。树枝git日志主机。。树枝git短日志主机。。树枝

我想知道是否有类似于“gitstatus master…branch”的东西来只查看两个分支之间不同的文件。

在不创建新工具的情况下,我认为这是您现在最接近的方法(如果文件被多次修改,这当然会显示重复):

git diff主机。。分支|grep“^diff”

我想知道我是否错过了什么。。。


当前回答

如果您使用的是Github/Github Enterprise,则可以通过点击存储库路径的url/compare来使用Web UI,例如,https://github.com/http4s/http4s/compare.您可以选择要比较的分支/提交/标记:

diff将在github接口的url/compare/{x1}。。。{x2}其中x2和x1是要比较的分支/提交/标记,例如:https://github.com/http4s/http4s/compare/main...dotty

您可以在Github文档中看到更多信息。

其他回答

要将当前分支与主分支进行比较,请执行以下操作:

$ git diff --name-status main

要比较任意两个分支:

$ git diff --name-status firstbranch..yourBranchName

在官方文档中有更多的gitdiff选项(特别是--name status选项)。

注意,如果您不喜欢结果,git可以很容易地尝试合并并避免任何问题。这可能比提前寻找潜在问题更容易。

如果有人试图从两个分支生成diff文件:

git diff master..otherbranch > myDiffFile.diff

当协同工作或同时处理多个功能时,通常上游甚至主功能包含分支中未包含的工作,并且会错误地显示在基本差异中。

如果您的上游可能已经移动,您应该这样做:

git fetch
git diff origin/master...

仅使用gitdiff-master就可以包含或不包含相关更改。

对于正在寻找GUI解决方案的人来说,Git Cola有一个非常好的“Branch Diff Viewer(Diff->Branches..)”。