繁体   English   中英

从Bitbucket / Stash查找“拉取请求”的差异

[英]Find the diff of a “pull request” from Bitbucket / Stash

(存储=本地托管的Bitbucket。)

我有典型的git的工作流程:创建一个分支,它的工作,将其推到定期藏匿,重订掉master定期,合并master通过藏匿。

结果是在Stash中的拉取请求仅包含正确的提交。

  • 有没有办法在命令行上使用git查找这些提交? git log确实包含它们,但是git reflog <my-feature-branch>仅显示其中一些。
  • 找到这些提交后,如何产生PR的差异? 最后一次提交是显而易见的,但是我找不到正确的起点。

更新 -从注释中可以看出,分支合并后和进行一些基础调整后,您正在进行分析。 我通常不会认为这很重要,因为:

1)要么在合并之前让my_feature_branch坐在提交上,要么不这样做。 您已经提到能够使用git log查看提交,因此我认为找到分支提示不是问题。

2)在master..my_feature_branchmaster...my_feature_branch (在它们各自的上下文中)的意义上,将事物放到master上通常不会改变任何东西。

但是由于我认为您不是那种先读答案的第一句话然后写防御性评论而不尝试答案给您的建议的人,这表明您可能已经进行了重新定位, 从而改变了分支机构-在这种情况下,应该在问题中阐明该基准的性质。

您说您了解git不知道任何请求请求,但是您根据git知道的事情关闭了比较,并继续询问是否有git可以告诉您有关请求请求的方法...不,没有没错 您想要的是创建PR时my_feature_branch指向的提交历史记录,而不是master指向的ocmmit的历史记录。 您可能已经完成了使事情复杂化的操作,或者您可能只是认为自己已经拥有了。

如果master当时指向的提交,现在可以从master到达(通过父指针); 如果您当时有任何引用指向(或指向其SHA ID)提交my_feature_branch ,那么我已经推荐的符号将起作用。

即使对my_feature_branch进行了重新设置,只要其新基础仍在master的历史记录中,并且该重新设置没有删除或编辑提交,使用与旧的my_feature_branch技巧相对应的重写提交,相同的表示法仍然可以使用。

如果您以其他方式重写了my_feature_branch (并且未跟踪原始提交),那么最好的选择是在reflog中找到提示提交,然后使用常规git loggit diff (如下所述) )使用提交的SHA而不是分支引用名称。


请注意,拉取请求不是“ core git”概念。 它是托管回购协议的服务所特有的。 您真正要检查的是分支,您已经为其发出了拉取请求。

我不明白你的第一个问题。 如已正确识别, git log显示分支的历史记录。 引用日志是其他内容(引用在此特定克隆中指向的本地历史记录),而不是您想要的。 我想git log的麻烦在于,如何使其显示尚未在master中的提交? 你可以这样做

git log master..my_feature_branch

(注意:在这种情况下为两个点。)因此,如果有

x --- x --- x --- x <--(master)
       \
        A --- B --- C <--(my_feature_branch)

此日志输出将列出ABC

至于如何做差异,它是相似的,但有些不同:

git diff master...my_feature_branch

(注意:这次是3个点。)

此自动查找“合并基础”用于mastermy_feature_branch和diff文件my_feature_branch靠基部。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM