【问题标题】:How do you know what changes are yet to be pushed?你怎么知道还有哪些变化需要推动?
【发布时间】:2016-04-28 14:44:50
【问题描述】:

我检查了一个分支,进行了更改,添加了更改并提交了。我没有推动更改。

当我执行git status 时,它会告诉我

Switched to branch 'develop'
Your branch is ahead of 'origin/develop' by 2 commits.
  (use "git push" to publish your local commits)

有没有一种方法可以知道哪些更改(文件/代码)正在等待推送?

【问题讨论】:

  • 如果你上面给出的输出真的是git status的范围,那么看起来你没有更改文件。您最近提交了工作吗?
  • stackoverflow.com/questions/11935633/… - git diff 不仅仅适用于您的本地存储库,您还可以获得大量选择之间的差异。 Git 状态(默认情况下)仅在本地工作,因此,如果您已在本地提交所有更改,它将看不到任何差异。该链接上的 HieroB 答案似乎比当前接受的更好,因为它提供了详细的命令。
  • @OP:您可以记下“2 次提交”的计数并运行git log --stat。查看前两个提交,并注意更改的文件。这是等待推送的 2 个提交。
  • 检查如果你推送到 master 将要进行的代码更改 - 执行 git stash 以清除未提交的更改(这些不会被推送)然后执行 git diff origin/master 以检查你将要进行的更改make 到 master(如果你推送提交),然后执行 git stash pop 将本地文件更改恢复到以前的状态。
  • 我尝试了所有建议。日志不显示文件,只显示提交消息。 @paxdiablo 我尝试使用建议的 HieroB 进行操作,但差异仍然没有显示更改。我记得至少更改了几个文件,我这辈子都不记得了

标签: git


【解决方案1】:

你可以试试:

git log --name-status origin/develop..develop

显示“develop”分支中但尚未出现在“origin/develop”分支中的提交,以及每个提交修改的路径列表。

【讨论】:

    【解决方案2】:

    git diff origin/develop 将显示从您当前分支到 origin/develop 的差异。

    git diff origin/develop develop 将显示您在任何分支上时 origin/develop 和 develop 分支之间的区别。

    【讨论】:

      【解决方案3】:

      我个人更喜欢使用这个命令来了解我的 git 存储库中发生了什么:

      git log --graph --all --decorate
      

      试一试,你会看到你的develop 分支在哪里,origin/develop 在哪里,还有哪些提交尚未推送到origin/develop

      您也可能会发现this alias 很有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-18
        • 1970-01-01
        • 2019-07-27
        • 1970-01-01
        • 1970-01-01
        • 2010-11-30
        • 2012-06-12
        • 1970-01-01
        相关资源
        最近更新 更多