如何在 Git 中找到未包含在合并或拉取请求中的提交?



我正在使用Git,前面是GitLab。

大多数代码更改是通过合并请求(类似于 GitHub 中的拉取请求)完成的,其中另一个开发人员查看更改并接受将提交从其他分支合并到主分支的请求。

有时开发人员会直接推送到主分支,而无需通过合并请求。我们希望追溯审查这些提交。是否可以运行 git 命令来列出不属于合并请求的任何直接推送提交?

在你自己的本地存储库副本上,你可以通过创建一个临时分支来记住master分支的位置:

git checkout -b master prev_master

然后从远程获取更新的主分支,例如

git fetch
git rebase origin/master master

然后,您可以检查所有最新更改的日志:

git log --raw prev_master..master

(我喜欢使用" --raw",因为它显示了哪些文件已更改。这听起来像你所追求的吗?

我不确定用例是否不同,但我使用 git cherry 来查找未合并的提交。

因此,例如,您可以运行git cherry -v master staging这将列出所有在暂存但不在主节点上的提交。

输出将如下所示

+ 30ad3d54a0e7b3b4127e5d6c214589e55c13951c Fix popup ui
+ d3ada650177eda21195e8694c83c9b6a03757a05 Fixed jenkins errors
+ 07f35ad04d9e9352b8693a9a59c5a369d17f2576 Fixed select box functionality
+ 60f9ae2d3ff9f7dbc5eda2cf57adcb86c7b16522 integrated API with frontend and replaced the dummy date used for temp purpose
+ 4a7309f5af06fffc1ba154c48fd9e5c60b9d3d8d Preview drop down added

您可以在此处的文档中找到更多详细信息:

不要将此与git cherry-pick混淆,这是一个非常不同的命令。

最新更新