Mic*_*ant 26 git merge branch commit github
我已将一个分支合并到主人,现在我可以在我的 git log
一段时间过去了,现在我想知道我以前是否也将master(带有该提交)推送到遥控器.怎么知道它是否被推了?
我可以想到一些解决方法,例如在其他地方重新存储存储库,或重置和检查然后重新合并,但我觉得可能有一个更简单的答案.
这是不同于我怎么能在git中知道一个分支是否已经合并到master中?据我所知它已合并,只是不知道远程推送.
Kla*_*urn 35
做
> git status
Run Code Online (Sandbox Code Playgroud)
如果输出是
# On branch master
nothing to commit, working directory clean
Run Code Online (Sandbox Code Playgroud)
然后你推了当前的提交.
如果输出改为以
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
# (use "git push" to publish your local commits)
Run Code Online (Sandbox Code Playgroud)
然后你有一个尚未推送的本地提交.您会看到这一点,因为远程分支origin/master指向上次推送到源的提交.但是,您的分支是ahead of 'origin/master',意味着您有一个在上次推送提交后创建的本地提交.
如果您感兴趣的提交不是最新的,那么您可以这样做
> git log --decorate --oneline
Run Code Online (Sandbox Code Playgroud)
找出有问题的提交是否在提交指向之前或之后origin/master.
如果提交之后(日志中的更高位置)origin/master,则表示尚未推送.
som*_*esh 10
如果您已进行多次提交但不确定其中哪一项已被推送到远程,请尝试以下操作:
git log origin/<remote-branch>..<local-branch>
Run Code Online (Sandbox Code Playgroud)
例:
git log origin/master..master
Run Code Online (Sandbox Code Playgroud)
这将列出本地分支中尚未推送到所提到的远程分支的所有提交.
以编程方式执行此操作的解决方案:
git merge-base --is-ancestor @{u} HEAD
Run Code Online (Sandbox Code Playgroud)
您可能还需要检查你的本地目录是干净的,如没有未提交文件的变化:
test -z "$(git status --porcelain)"
Run Code Online (Sandbox Code Playgroud)
小智 6
我建议你运行这个:
$ git fetch --all
Fetching origin
Fetching upstream
Run Code Online (Sandbox Code Playgroud)
这将从所有遥控器获取最新数据。
然后你运行:
$ git branch -v
master ef762af [ahead 3] added attach methods
* testing 4634e21 added -p flag
upstream 1234567 [ahead 1, behind 7] updated README.md
Run Code Online (Sandbox Code Playgroud)
这将显示您在哪些分支上领先或落后。
我发布这个是因为其他答案都没有提到获取远程数据,这一步至关重要。
| 归档时间: |
|
| 查看次数: |
22061 次 |
| 最近记录: |