gpt4 book ai didi

主和分支之间的 git 提前/落后信息?

转载 作者:IT王子 更新时间:2023-10-29 01:18:05 28 4
gpt4 key购买 nike

我在我的本地仓库 (test-branch) 中创建了一个测试分支,并将其推送到 Github

如果我转到我的 Github 帐户并选择这个 test-branch 它会显示信息:

This branch is 1 commit ahead and 2 commits behind master

我的问题是:

  1. 我如何在本地显示此信息(即:在终端上显示此信息的命令,而不是必须打开 Github 才能看到它)?
  2. 我知道我可以使用以下方法查看分支之间的差异:

    git diff master..test-branch

    或使用 Meld(我更喜欢):

    git difftool master..test-branch

    但我想知道是否有办法分别查看aheadbehind 提交。 I.E.:有没有办法表明 1 个自己提前提交,然后那些 2 个自己落后

最佳答案

第 1 部分

作为对问题 1 的回答,这是我发现的一个技巧,用于比较两个分支并显示每个分支领先于另一个分支的提交次数(对问题 1 的更笼统的回答):

对于本地分支机构: git rev-list --left-right --count master...test-branch

对于远程分支: git rev-list --left-right --count origin/master...origin/test-branch

这会产生如下输出:

2 1

此输出表示:“与 master 相比,test-branch 提前 1 次提交,落后 2 次提交。”

您还可以将本地分支与远程分支进行比较,例如origin/master...master找出本地分支(此处为 master)领先/落后于其远程分支的提交数。

第 2 部分

要回答问题的第二部分,解决方案取决于您想要实现的目标。

查看提交

为了拥有git rev-list返回两边唯一的确切提交列表,替换 --count与类似 --pretty=oneline 的争论, 使完整的命令执行:

git rev-list --left-right --pretty=oneline master...test-branch

这将生成如下输出:

<bba27b56ad7072e281d529d4845e4edf877eb7d7 unique commit 2 on master
<dad0b69ec50ea57b076bfecabf2cc7c8a652bb6f unique commit 1 on master
>4bfad52fbcf0e60d78d06661d5c06b59c98ac8fd unique commit 1 on test-branch

这里每个提交 sha 都以 < 开头或 >指示可以在哪个分支上找到它(左侧或右侧,此处分别为 mastertest-branch)。

查看代码

如果您想查看仅在任一分支上发现的所有新提交的差异,您需要分两步执行此操作:

  1. 定义最近的共同祖先
$ git merge-base master test-branch
c22faff7468d6d5caef217ac6b82f3ed95e9d902
  1. diff 任一分支到上面获得的提交 sha(通常使用短格式)

显示仅在 master 上找到的所有提交的差异

git diff c22faff7..master

显示所有提交的差异只找到测试分支

git diff c22faff7..test-branch

关于主和分支之间的 git 提前/落后信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20433867/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com