我已经将一个分支合并到master中,现在可以在git log
中看到
一段时间过去了,现在我想知道我之前是否也将master(使用该提交)推送到了远程控制器。我怎么知道它是否已经被推送到了远程控制器?
我可以想到一些变通方法,比如在其他地方重新克隆存储库,或者重置并检查,然后重新合并,但我觉得可能有一个更简单的答案。
顺便说一句,这是不同的How can I know in git if a branch has been already merged into master?,因为我知道它已经合并,只是不知道远程推送。
6条答案
按热度按时间t2a7ltrp1#
做
如果输出为
那么您已经推送了当前提交。
如果输出以
这时你有一个本地提交还没有被推送,这是因为远程分支
origin/master
指向的是最后一个被推送到原点的提交,而你的分支是ahead of 'origin/master'
,这意味着你有一个本地提交是在最后一个被推送的提交之后创建的。如果您感兴趣的提交不是最新的,那么您可以
以查明所讨论的提交是在
origin/master
所指向的提交之前还是之后。如果提交在
origin/master
之后(在日志中高于origin/master
),则它没有被推送。4jb9z9bj2#
如果你已经做了多个提交,并且不确定哪个提交被推送到了远程提交,试试这个:
示例:
这会列出本地分支中所有没有被推送到远程分支的提交。
ua4mk5z43#
以编程方式(例如,在脚本中):
您可能还需要检查本地目录是否干净,例如,没有未提交的文件更改:
ozxc1zmp4#
您可以使用
git log --graph --all --decorate
,它将显示每个引用的位置(HEAD、master、origin/master等)zvokhttg5#
我建议你运行这个:
这将从所有远程获取最新数据。
然后运行:
这将显示您在哪些分支上领先或落后。
我发布这个是因为其他答案都没有提到获取远程数据,这一步是至关重要的。
9o685dep6#
试试这个
git branch -r --contains <sha1>
对于我的存储库中的提交,我可以看到它存在于remote develop分支上