从github上pull一个本地不存在的分支的方法?

 流连的瓶子 发布于 2022-10-25 18:18

github分支结构

  • master
  • develop

本地代码的结构

  • master

现在我想从github中pull其develop分支,想达到本地也有master和develop分支的效果,但是我用

git pull origin develop

发现这条命令的结果是在本地的master分支基础上对github的develop分支进行合并

问题1:难道需要现在本地创建一个develop分支,然后checkout到本地develop分支,然后再执行git pull操作吗?如果是这样,那么如果本地分支的个数和github上相差很大时,需要每个都按照上面的方法走一遍?

问题2:有没有一条命令,能对本地的所有分支进行更新同步到github上面的版本?

问题3:有没有方法,能把所有的github的分支更新pull下来?

问题4:如果是本地存在某个分支test,而github上面不存在该分支,是不是需要人工删除?有没有像问题3中把所有分支更新pull下来,包括已删除的分支pull到本地之后,本地的相应分支也会删除

3 个回答
  • 理解了 git pull = fetch + merge ,那么问题3是做不到的,因为merge有可能有冲突,只能操作一个分支。

    我也讨厌英文手册,难得看。。。

    2022-10-26 23:39 回答
    • 如果你仅要把远端的版本库同步到本地:
    $ git fetch origin
    
    • 如果你想要在完成同步远程版本库的基础上,把远程分支里的某个内容给pull下来。仔细想想,git pull就是分为git fetchgit merge两个命令来实现的,前者对版本库操作,后者通过版本库影响本地文件。那么,你可以
    $ git checkout -b localbranch
    $ git pull origin remotebranch:localbranch // 当本地分支和远程分支名称相同时,只写一个就可以
    // 这种方法适合pull指定分支
    
    • 你要把所有本地分支都推送到远端
    $ git push -all
    
    2022-10-26 23:39 回答
    1. git fetch origin 取远程的变更即可。或者 git pull 取当前分支的更新的同时会把其它分支也拖回来的。除非 clone 的时候用了 -b 选项。你也可以用 git fetch origin develop 来指定。git fetchgit push 的对应。
    2. 你太懒了。man git-push 就可以看到答案(好吧,虽然我之前也不知道):

    --all
    Instead of naming each ref to push, specifies that all refs under refs/heads/ be pushed.

    2022-10-26 23:39 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有