zoukankan      html  css  js  c++  java
  • git远程易错点



    git pull下来用git branch -r查看远程分支才有数据

    解决方案:指定当前工作目录工作分支,跟远程的仓库,分支之间的链接关系。
    比如我们设置master对应远程仓库的master分支
    git branch --set-upstream master origin/master

    git branch查看本地分支,git branch -r 查看远程分支


    具体原因: 出现这种情况主要是由于远程仓库太多,且分支较多。在默认情况下,git push时一般会上传到origin下的master分支上,然而当repository和branch过多,而又没有设置关联时,git就会产生疑问,因为它无法判断你的push目标。
    用如下命令进行本地分支和远程分支进行关联
    git push --set-upstream origin master
    这样在我们每次想push或者pull的时候,只需要 输入git push 或者git pull即可。
    在此之前,我们必须要指定想要push或者pull的远程分支。
    git push origin master
    git pull origin master.
    不然报错

    git pull时遇到
    fatal: refusing to merge unrelated histories

    我们在初见一个git仓库需要将之提交到远程仓库时,使用git pull origin master 命令操作时,会遇到这样的错误:fatal: refusing to merge unrelated histories
    这是因为远程仓库已经存在代码记录了,并且那部分代码没有和本地仓库进行关联,我们可以使用如下操作允许pull未关联的远程仓库旧代码:

     git pull origin api-dev  --allow-unrelated-histories
    


    这样就可以把远程该分支的代码下载到本地了

    git branch -vv 可查看本地分支和远程分支的对应关系


    根本原因在于本地分支 github 是从远程分支develop拉取的,在执行git push命令时,不知道应该与远程哪个分支进行同步,就会出现上面那个错误
    提示了两种解决方法
    git push github-origin HEAD:develop
    这种是将当前分支推送到github-origin仓库的develop分支

    或者
    git push github-origin HEAD
    这种是将当前分支推送到远程的同名分支,没有就会创建

    git rebase变基

    设置已有的本地分支跟踪一个刚刚拉取下来的远程分支,或者想要修改正在跟踪的上游分支,你可以在任意时间使用 -u 或 --set-upstream-to 选项运行 git branch 来显式地设置。

    可以运行 git merge origin/serverfix 将这些工作合并到当前所在的分支。 如果想要在自己的 serverfix 分支上工作,可以将其建立在远程跟踪分支之上:

    有时当初次git push不能参数时会提示这个

    原因是本地的分支跟远程的分支名字不一样
    git push origin HEAD:develop 的意思是将当前分支推送到origin的develop分支
    git push origin HEAD 的意思是将当前分支推送到origin仓库与本地当前分支的同名分支,没有就会新建

    删除远程分支

    git branch -r -d origin/github 只是删除了fetch或pull下来的上游追踪

    远程删除 git push <主机名> :<远程分支名>或git push <主机名> --delete <远程分支名>

    有一种情况,就是不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机,这时需要使用–all选项。

    $ git push --all origin
    

    上面命令表示,将所有本地分支都推送到origin主机。如果远程主机的版本比本地版本更新,推送时Git会报错,要求先在本地做git pull合并差异,然后再推送到远程主机。这时,如果你一定要推送,可以使用–force选项。

    $ git push --force origin
    

    上面命令使用-–force选项,结果导致在远程主机产生一个”非直进式”的合并(non-fast-forward merge)。除非你很确定要这样做,否则应该尽量避免使用–-force选项。

    git fetch <主机名> <远程分支> : <本地分支>

    git fetch origin develop:branch2
    


    意思是把origin主机的develop分支的数据下载到本地分支branch2(没有branch2就新建)

    详见这里

    个人网站

  • 相关阅读:
    缓存架构设计细节二三事
    数据库软件架构设计些什么
    100亿数据1万属性数据架构设计
    这才是真正的表扩展方案
    啥,又要为表增加一列属性?
    究竟啥才是互联网架构“高可用”
    究竟啥才是互联网架构“高并发”
    Linux用过的命令
    Xshell远程连接工具
    oracle分组取第一条
  • 原文地址:https://www.cnblogs.com/panbingwen/p/10795570.html
Copyright © 2011-2022 走看看