gpt4 book ai didi

git - 我们如何为特定的远程运行 git status?

转载 作者:太空狗 更新时间:2023-10-29 13:20:09 25 4
gpt4 key购买 nike

我们的本地 git 存储库有两个 Remote 。一个远程称为 dev,另一个称为 origin。当我们运行 git statusgit status dev 时,我们收到此消息:

# On branch 1.8.x
# Your branch is ahead of 'origin/1.8.x' by 4 commits.
# (use "git push" to publish your local commits)
#
nothing to commit, working directory clean

该消息告诉我们 origin Remote 的状态。那不是我们想要的。我们如何才能只检查 dev 远程的状态?

最佳答案

git status 获取该信息。

  • 我们在哪个分支?

    $ git symbolic-ref --short HEAD
    1.8.x

    (通常,上面是首选的查找方法;如果您处于“分离的 HEAD”模式,它会出错),或者:

    $ git rev-parse --symbolic-full-name HEAD
    refs/heads/1.8.x

    (这也有效,但只能为您提供“全名”:删除 refs/heads/ 以获取分支名称)。

  • 什么分支是 1.8.x 的“上游”?

    $ git rev-parse --symbolic-full-name '@{upstream}'
    refs/remotes/origin/1.8.x

    (上面是更简单的方法,但同样只给你“全名”形式;这次你必须删除 refs/remotes/ 来缩短它),或者:

    $ git config --get branch.1.8.x.remote
    origin
    $ git config --get branch.1.8.x.merge
    refs/heads/1.8.x
    $ git config --get remote.origin.fetch
    +refs/heads/*:refs/remotes/origin/*

    (这就是 git 计算出 @{upstream} 的符号全名的方式——这有点复杂,因为您必须从 fetch1 行)。

  • 一侧或另一侧有多少次修订?

    $ git rev-list --count origin/1.8.x..1.8.x
    4
    $ git rev-list --count 1.8.x..origin/1.8.x
    0

    也就是说,我们要求 git rev-list 计算从引用 1.8.x(您当前的分支)而不是 origin/1.8.x(您的上游)。答案是 4,所以你“领先 4”。然后我们要求 git rev-list 计算有多少提交可以从 origin/1.8.x 而不是 1.8.x 到达。答案是 0,所以你“落后于 0”,git status 然后可以保持安静。

git status 命令为设置为当前分支“上游”的分支完成所有这些工作。因此,您可以使用 git branch --set-upstream-to更改上游——在本例中,将其从 origin/1.8.xdev/1.8.x——从那时起,您将从 git status 获取该信息,该信息。 (将其改回以获取要切换回的信息。)


如果你想暂时得到它,而不切换分支,你需要做或多或少的“git status 做的事”,但有一个替代的“上游”,在这种情况下,开发/1.8.x。编写执行此操作的 shell 脚本并不难,特别是如果您简单地假设分支 B 映射到分支 rmt/B 对于给定的远程 rmt (然后你不需要做所有复杂的映射)。也就是说,如果您在分支 zog 上,并且您正在询问远程 bob,您只需执行两个 rev-list对于 bob/zog..zogzog..bob/zog


1实际上,如果有多个引用映射 fetch<,您真的需要 git config --get-all remote.origin.fetch/行。但是这种引用映射很痛苦;可能应该有一个 git 管道命令来为你做这件事。

关于git - 我们如何为特定的远程运行 git status?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25277397/

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