cod*_*odr 26 git github git-diff
我想看看master分支和我的功能分支之间的区别.我有很多从主服务器到我的功能分支的东西,并希望看到如果我将我的功能合并到主服务器中将添加的更改.
这是我的情况:
-*--*--*-----*<master>
\ \ \
1--*--*--*--2--*<feature>
Run Code Online (Sandbox Code Playgroud)
我的问题是git diff master feature似乎只显示提交号2.我想看到一个github pull请求将显示的差异,我相信这是提交的所有方式1.我注意到git cherry显示我提交的我希望看到的区别为.
谢谢你的建议.
Mar*_*air 123
要实现的重要一点git diff A B是,它只会向您显示提交图中两个点之间树的状态之间的差异 - 它并不关心历史.在..与...用于符号git diff的含义如下:

所以,当你运行git diff master feature的是不只是显示你所引入的变化的提交已标记为2-输出应该显示在COMMITED树的状态之间的确切差异master和COMMITED树的状态feature.如果它没有向您显示您的功能分支上的早期更改,也许您解决了早期合并来自master的冲突,而不是版本中的master?
正如cebewee所说,可能是你想要的git log -p master..feature,因为git log 它关心历史.的意义..和...对git log,因为他们选择了一系列的提交是不同的:

顺便提一下,它经常说从合并master到主题分支是错误的事情 - 相反,你应该重新定位,或者在你的主题分支master完成后合并.这使得主题分支的含义易于理解.git维护者做了一篇(有点难以理解)关于合并哲学的博客文章,讨论了这一点.
git diff master feature不显示任何提交'但提交主和功能之间的文本差异.听起来好像你想看到所有功能的提交,这些提交尚未掌握?在这种情况下,尝试git log master..feature或git log -p master..feature,如果你想看到差异,也可以.
有关man git-rev-parse"a..b"语法的说明,请参阅"规范范围"一节.