如何在 git 中仅获取唯一的提交

发布于 2025-01-03 14:16:48 字数 80 浏览 1 评论 0原文

我想获取所有分支中唯一提交的列表,但是如果有人在分支中使用 rebase,则会提交松散的父项。如何解决这个问题呢?如何获取进行独特更改的提交列表?

I want to get list of unique commits in all branches, but if somebody is using rebase in branch commits loose parents. How to solve this problem? How to get list of commits that made unique changes?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

雨轻弹 2025-01-10 14:16:48

我使用

git log --oneline --graph --cherry-pick --left-right

你正在寻找的操作动词 is --cherry-pick

--cherry-pick

当提交集受到对称差异限制时,忽略与“另一侧”的另一个提交引入相同更改的任何提交。

例如,如果您有两个分支 A 和 B,仅在其一侧列出所有提交的常用方法是使用 --left-right,如上面该选项描述中的示例。然而,它显示了从另一个分支中精心挑选的提交(例如,“b 上的 3rd”可能是从分支 A 中精心挑选的)。使用此选项,此类提交对将从输出中排除。

添加左右可以更容易地看到分支之间的差异:

git log --oneline --graph --cherry-pick --left-right BRANCH1...BRANCH2

< 6abfdcf only on BRANCH1
> 7b2127a only on BRANCH2
> 919ca24 only on BRANCH2

这里,樱桃选择或合并提交也从视图中“隐藏”

I use

git log --oneline --graph --cherry-pick --left-right

The operative verb you are looking for is --cherry-pick:

--cherry-pick

Omit any commit that introduces the same change as another commit on the "other side" when the set of commits are limited with symmetric difference.

For example, if you have two branches, A and B, a usual way to list all commits on only one side of them is with --left-right, like the example above in the description of that option. It however shows the commits that were cherry-picked from the other branch (for example, "3rd on b" may be cherry-picked from branch A). With this option, such pairs of commits are excluded from the output.

The addition of left-right makes it easier to see differences between branches:

git log --oneline --graph --cherry-pick --left-right BRANCH1...BRANCH2

< 6abfdcf only on BRANCH1
> 7b2127a only on BRANCH2
> 919ca24 only on BRANCH2

Here, also, cherry-picks or merged commits are 'hidden' from view

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文