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

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

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

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

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

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

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

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


当前回答

还有一种基于GUI的方法。

你可以使用gitk。

运行:$gitk--全部右键单击分支的提交,然后在弹出菜单中选择标记此提交。右键单击另一个分支的提交,然后选择Diff this->标记的提交或Diff标记的提交->此。

然后,右下面板中会有一个已更改的文件列表,左下面板中有差异详细信息。

其他回答

有两个分支

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

在分支A中,您可以键入

git diff --color B

那么这将为您提供

重要的一点是

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

还要记住,git的分支既便宜又容易。如果我认为合并可能有问题,我会为合并创建一个分支。因此,如果master有我想要合并的更改,而ba是我的分支,需要来自master的代码,我可以执行以下操作:

git checkout ba
git checkout -b ba-merge
git merge master
.... review new code and fix conflicts....
git commit
git checkout ba
git merge ba-merge
git branch -d ba-merge
git merge master

最终的结果是,我不得不在一个废弃的分支上尝试合并,然后再使用我的分支。如果我陷入困境,我可以删除ba合并分支,重新开始。

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

$ git diff --name-status main

要比较任意两个分支:

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

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

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

还有一个选项,在这种情况下使用meld:

git difftool -d master otherbranch

这不仅可以看到文件之间的差异,还提供了指向和单击特定文件的简单方法。