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

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

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

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

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

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

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

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


当前回答

我制作了一个管道,输出在两个分支之间修改过的所有文件名的列表。这对于管道连接到另一个程序非常有用,而不是直接将差异视为其他响应。

yes n | git difftool main..develop | grep V |sed "s#Viewing ([0-9]*/[0-9]*): ##g"

或者,如果您只想知道当前分支和另一个分支之间的差异:

yes n | git difftool develop | grep V |sed "s#Viewing ([0-9]*/[0-9]*): ##g"

gitdifftooldevelop将提示您打开difftool中的文件。我使用yes n拒绝所有内容,然后简单地用grep和sed格式化文本。

其他回答

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

如果您使用IntelliJ IDEA,还可以将任何分支与当前工作分支进行比较。看见http://www.jetbrains.com/idea/webhelp/merging-deleting-and-comparing-branches.html#d288093e3827了解更多信息。这也有免费版。

我制作了一个管道,输出在两个分支之间修改过的所有文件名的列表。这对于管道连接到另一个程序非常有用,而不是直接将差异视为其他响应。

yes n | git difftool main..develop | grep V |sed "s#Viewing ([0-9]*/[0-9]*): ##g"

或者,如果您只想知道当前分支和另一个分支之间的差异:

yes n | git difftool develop | grep V |sed "s#Viewing ([0-9]*/[0-9]*): ##g"

gitdifftooldevelop将提示您打开difftool中的文件。我使用yes n拒绝所有内容,然后简单地用grep和sed格式化文本。

有两个分支

A(您正在工作的分支机构)B(要与之比较的另一个分支)

在分支A中,您可以键入

git diff --color B

那么这将为您提供

重要的一点是

分支A中有绿色文本分支B中存在红色文本

如果您使用的是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文档中看到更多信息。