我在git中寻找等价的p4 interchanges。是否有任何选项/标志用于查找一个分支中尚未集成/合并到另一个分支的更改。
我正在寻找此选项来跟踪我的功能分支中所做的更改是否尚未合并到主分支中,然后才能删除发布分支。
答案 0 :(得分:2)
git cherry
?
git cherry [-v] [<upstream> [<head> [<limit>]]]
- 输出
<limit>
和<head>
之间每次提交的SHA1,- 并为
中的等效内容的提交-
添加前缀,以便在列表中提交具有<upstream>
- 并在
中没有等效内容的提交+
前面加上列表中提交的<upstream>
其中<upstream>
和<head>
是指git branches
<limit>
是指git存储库历史记录中的提交。
在topic
分支由三个提交组成的情况下,
维护者将其中两个应用于origin/master
,情况可能如下:
$ git log --graph --oneline --decorate --boundary origin/master...topic
* 7654321 (origin/master) upstream tip commit
|
* cccc111 cherry-pick of C
* aaaa111 cherry-pick of A
|
| * cccc000 (topic) commit C
| * bbbb000 commit B
| * aaaa000 commit A
|/
o 1234567 branch point
现在git-cherry
将显示尚未应用于origin/master
的内容的简明摘要:
$ git cherry origin/master topic
- cccc000... commit C
+ bbbb000... commit B
- aaaa000... commit A
在这里,我们发现提交A
和C
(标有 -
)已被挑选到origin/master
,提交B
(标有 +
)尚未合并到origin/master
。
当我们有2个本地分支X和Y进行比较时;
提出问题:
分支X中是否有任何尚未在分支Y中的提交?我们会说
git cherry branchY branchX
并查找列在其前面的+
的任何提交。