辛星浅析git push中的一些问题

来源:互联网 发布:同方知好乐软件 编辑:程序博客网 时间:2024/06/08 11:36

    我们首先看一下git  push的基本用法:

    git  push   origin   test:master  //提交本地test分支作为远程的master分支

    git  push   origin   test:test    //提交本地test分支作为远程的test分支

    git  push   origin      :test     //删除远程的test分支,但是本地还是会保存



    常见的错误一:error:failed  to push some refs  to ....

    下面是一个错误信息:

     error:failed to push some refs to ...

     Dealing with “non-fast-forward” errors

     From time to time you may encounter this error while pushing:


    出现这种问题的通常会伴随着"non-fast-foward"的出现,它的意思是不能通过快进的方式来直接提交。主要原因就是因为git仓库中已经有一部分代码,所以它不允许我们直接把我们的代码覆盖上去。

    这个时候我们有两种选择:

    (1)git  push  -f 

     利用强覆盖的方式把我们本地的代码替代git仓库内的内容

    (2)git  fetch 和 git merge ,当然我们可以用git  pull来等价的替代,

     它是先把git的东西fetch到我们本地后合并再推送


    常见的错误二:failed  to  push  some  refs  to '.../remote/"

     下面是一个错误信息:


       To ../remote/ 

       ! [rejected]        master -> master (non-fast forward) 

       error: failed to push some refs to '../remote/' 

       To prevent you from losing history, non-fast-forward updates were rejected

       Merge the remote changes before pushing again.  See the 'non-fast forward'

       section of 'git push --help' for details.


     通常我们在.git/config中如下配置即可:

     [branch  "master"]

        remote = origin

        merge  = refs/heads/master

      这等于告诉git两件事:

      (1)当我们处于master  branch,默认的remote就是origin

       (2)当我们在master branch上使用git  pull时,没有指定remote和branch,

        那么git就会采用默认的remote,也就是origin来merge在master branch上所有的改变

       如果我们不进行编辑的话,我们可以在命令行输入如下命令行:

       $git  config  branch.master.remote  origin

       $git  config  branch.master.merge    refs/heads/master

       之后我们再次git  pull就可以了,然后我们使用git  push我们的代码即可。    


   


0 0
原创粉丝点击