【问题标题】:Show local commits when branch name contains slash当分支名称包含斜杠时显示本地提交
【发布时间】:2017-08-11 00:26:36
【问题描述】:

我有一个名称中包含斜杠的 git 分支,例如my/branch 现在,当我想通过运行查看我的本地提交(仅本地提交而不推送到远程的提交)时

git log origin/my/branch..HEAD

git 带来如下错误信息:

致命:不明确的参数 'origin/my/branch..--HEAD':未知修订版或路径不在工作树中。

使用“--”将路径与修订分开,如下所示: 'git [...] -- [...]'

我不太明白 git 如何使用这个提示。在这种情况下如何查看我的本地提交?

【问题讨论】:

    标签: git branch local commit git-log


    【解决方案1】:

    当我想查看我的本地提交时

    "local" 表示:还没有在origin(对远程仓库的引用)上。

    一个简单的git log(没有origin)就足够了

    git log my/branch
    

    仅获取您未推送的提交,assuming you have branched from master

    git log $(git merge-base --fork-point master my/branch) my/branch
    

    (即默认与git log my/branch..HEAD相同)

    第一次推送:

    git push -u origin my/branch
    

    【讨论】:

    • 嗨@VonC。在这种情况下,我获得了提交的全部历史记录,包括我尚未推送的提交。
    • @superM 好的。我已将答案更新为仅列出未推送的提交。
    • 感谢您的更新。我尝试了您建议的命令,但仍然使用 git log $(git merge-base --fork-point master my/branch) my/branch 获取所有历史记录
    • @superM 应该可以工作(stackoverflow.com/questions/462974/…)。首先检查 git merge-base --fork-point master my/branch 是否返回正确的提交。
    【解决方案2】:

    my/branchorigin 上不存在时会发生这种情况(准确地说:如果您的本地副本不知道origin/my/branch)。

    致电git branch -r 以查看您的本地存储库中是否已知origin/my/branch。如果没有尝试get fetch origin

    如果这一切都不能帮助发布git branch -agit remote 的结果。

    【讨论】:

    • 嗨@Jens。看起来我恰好遇到了这种情况。 remote 或 origin 不包含我的分支,但与 master 合并。所以我的猜测是 git 应该能够将我的分支与 origin master 进行比较,并提供不在 origin 上的提交。
    猜你喜欢
    • 2021-12-22
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 2020-03-01
    • 2011-02-01
    相关资源
    最近更新 更多