git - Git分支之间显示哪些文件已经更改了

  显示原文与译文双语对照的内容

我想合并两个分支会被分开一会儿,想知道哪些文件已经被修改。

找到了这个链接:http://linux.yyz.us/git-howto.html,它非常有用。

用来比较我遇到的分支的工具是:

  • git diff master..branch
  • git log master..branch
  • git shortlog master..branch

想知道是否有类似"git状态母版。分支"的东西,只查看两个分支之间不同的文件。

而不创建一个新的工具,我想这是否就是最接近的方式来做到这一点现在( 如果一个文件被多次修改,当然会显示重复):

  • git diff master..branch | grep"^diff"

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

时间:

try


$ git diff --stat --color master..branchName

这将为你提供关于每次更改的更多信息,同时仍然使用相同的行数。

如果要合并其他方式,也可以翻转分支以获得更清晰的差异图片:


$ git diff --stat --color branchName..master

还要记住,git有很便宜的分支。 如果我认为合并有问题,我为合并创建一个分支。 如果 master 有我想要合并的更改,那么 ba 是我的分支,需要来自主机的代码,我可以执行以下操作:


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

最终结果是我必须先尝试throw-away分支上的合并,然后再与我的分支进行对接。 如果我得到自己的混乱,我可以删除 ba-merge 分支并重新开始。

还有一个基于GUI的方法。

你可以使用 gitk

  1. 运行:

     
    $ gitk --all
    
     
  2. 在 pop-up menu,右键点击一个提交的分支,然后选择标志这里提交.

  3. 右键点击一个提交的另一分支,然后选择这里 差异这个问题-> 标记为提交或者差异标记为提交-> 。

然后在右底部面板中会有一个改变的文件列表,左边面板中会有不同的细节。

还有一个选项,在本例中使用 meld:


git difftool -d master otherbranch

这样不仅要查看各文件之间的区别,而且还提供了一个简单的方法就可以很容易分析到一个特定文件。

如果使用的是 IntelliJ IDEA,也可以将任何分支与当前工作分支进行比较。 有关更多信息,请参阅 http://www.jetbrains.com/idea/webhelp/merging-deleting-and-comparing-branches.html#d288093e3827 。 这在免费版中也可用。

如果你的主控形状已经移动,你应该这样做:


git fetch
git diff origin/master...

仅使用 git diff 主控形状可以包括或者不包括相关更改。

...