【问题标题】:Your branch is ahead of 'origin/master' by X commits. How to find the X commits? [duplicate]您的分支在 X 提交之前领先于 'origin/master'。如何找到 X 提交? [复制]
【发布时间】:2012-12-18 17:41:20
【问题描述】:

我正在使用以下命令检查 X 提交:

git log --author=<my-name> -<X>

但问题是我不小心从另一个存储库中提取了代码并将该存储库中的提交添加到我的本地 git 存储库。

所以我不能使用上面的命令,因为新的提交包含一些其他作者。

【问题讨论】:

  • 如果您的工作副本是干净的(没有未提交的更改),您可以使用stackoverflow.com/q/1223354/11343返回到拉取之前的状态
  • @CharlesB "git reset --hard" 不会进入拉取之前的状态。消息仍在发送。
  • 你需要在pull之前找到check-out的commit hash并传递给reset --hard,请阅读我提到的问题
  • “X 提交”是指本地存在但远程不存在的提交数量是什么意思?您创建的提交数量?这个问题对你所寻求的有点模棱两可。
  • @LopSae 本地但不远程存在的提交数量。

标签: git git-commit git-log


【解决方案1】:

命令

git log origin/master..master

显示master 上但不在origin/master 上的提交。

【讨论】:

  • 它不会显示提交。它显示我的本地存储库和远程存储库中存在一些提交。
  • 也许我误解了你的问题……
  • 根据您获得的投票接受答案:D
【解决方案2】:

我用这个:

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative

它将提交显示为图表,包含所有分支及其名称。

我的建议是在 ~/.gitconfig 中为其创建别名

【讨论】:

  • 我认为它包含提交。但它显示了太多信息。如何从中识别 X Commits?
  • 当然可以添加--author=&lt;my-name&gt; -&lt;X&gt;。还是不是你想要的?
【解决方案3】:

我为这个命令创建了一个别名,列出了尚未推送的提交。

git log --branches --not --remotes --decorate --oneline

这是在Viewing Unpushed Git Commits 中发布的命令 cxreg 的变体。

还有很多其他有用的方法来解析该帖子中的提交树。

【讨论】:

    【解决方案4】:

    treeish..treeish 表示法完全适用于查看第二个引用中存在的提交,但不是第一个引用。来自 git log 帮助:

    常规的 D..M 计算作为 M 祖先的提交集,但排除作为 D 的祖先的提交。这有助于了解自 D 以来导致 M 的历史发生了什么,从某种意义上说“M 有什么 D 中不存在的东西”。

    将其与git loggit show 一起使用,您可以输出一个列表,其中包含D..M 差异中每个提交的单行:

    git show -s --oneline branch..HEAD
    

    git log --oneline branch..HEAD
    

    将其与字数配对,您可以准确输出您正在寻找的提交数量:

    git log --oneline branch..HEAD | wc -l
    

    【讨论】:

    • 我试过上面的命令。我根本没有得到任何输出。
    • 如果您没有收到任何错误,并且上面的show/log 没有打印任何内容,那么这意味着,假设A..BB 已经包含A 中的所有提交,并且这没有提交打印。尝试反转它,或者尝试几个你确定不同的提交。例如,如果您尝试使用HEAD^..HEAD,则必须显示一个提交。
    • 以上所有 cmets 仅与本地 repo 进行比较。如何与远程仓库进行比较?
    • 使用格式为remote/branch 的引用,就像origin/master。如果您的本地和远程分支名称相同,并且您的远程是origin,那么您可以使用origin/branch..branch。按照您在问题中的描述,您可能需要origin/master..HEAD
    【解决方案5】:

    这个问题已经在另一个帖子中回答了:

    git log origin/master..HEAD
    

    (见Viewing Unpushed Git Commits

    【讨论】:

      猜你喜欢
      • 2021-07-02
      • 2013-04-23
      • 2021-02-07
      • 2012-04-27
      • 2019-12-02
      • 2011-01-21
      • 2011-01-26
      相关资源
      最近更新 更多