有时我有以下问题:
在功能分支中添加一些提交.
从上游更新master.
想要查看功能分支和主服务器之间的差异,但是git diff master显示在master中添加/删除的所有内容,当我真的只想查看功能分支优先于master的提交时,而不是它的那些提交.背后.
有没有办法在不必将master合并到功能分支的情况下执行此操作?
Dan*_*rts 50
我认为正确的答案是三点
git diff master...feature
Run Code Online (Sandbox Code Playgroud)
这只显示了关于master的功能的新变化.另请参阅:git diff - 仅显示遥控器上的新功能
Pet*_*ren 28
我经常去
git log -p feature-branch --not master
Run Code Online (Sandbox Code Playgroud)
但如果你想要差异,那么你正在寻找
git diff <common-ancestor> master
Run Code Online (Sandbox Code Playgroud)
其中<common-ancestor>是要与之比较的要素分支和母版的共同祖先.你可以用来merge-base为你找到它.
git diff `git merge-base feature-branch master` feature-branch
Run Code Online (Sandbox Code Playgroud)
小智 23
您的问题有点不清楚,因为我不确定您是否希望在master和之间看到更改的差异/补丁feature,或者您只是想查看哪些分支包含其他分支没有的提交.
假设你只是想看看你的feature分支中哪些提交不存在master(即哪些提交在feature"提前" master),那么你可以做
$ git log --oneline --graph master..feature
Run Code Online (Sandbox Code Playgroud)
如果你想看看这两个master和feature有分歧,你可以使用这个命令:
$ git log --oneline --graph --first-parent \
--decorate --left-right master...feature
> 5bef654 (feature) A ...
> f7c65ea B ...
> fc66245 C ...
> 7435fc0 D ...
< bf68204 (master) X ...
< 0c10ed1 Y ...
< 27bb774 Z ...
Run Code Online (Sandbox Code Playgroud)
以上显示犯master不在feature与<在他们面前(因为你使用master...feature与主左侧<的命令的一侧),而犯feature未在主标有>,因为你使用feature上的右侧master...feature....这种形式的三重点很重要,不要遗漏.
您可以从Pro Git书中了解有关指定Commit Range的更多信息.
| 归档时间: |
|
| 查看次数: |
25590 次 |
| 最近记录: |