zoukankan      html  css  js  c++  java
  • Git 之 问题集锦

    准备:远程仓库名:origin     远程分支:master、tt      本地分支:master、test

    1. error: src refspec *** does not match any

    原因:$ git push origin tt 

          将本地的tt分支推送到远程仓库origin的tt分支,如果远程tt分支不存在则会创建

          而本地没有tt分支,故报错。

    解决方法:$ git push origin test   ----> 保证本地分支和要推送的分支名一样,远程分支为test

          或 $ git push origin test:tt    ----> 将本地的test分支推送到远程tt分支

             下面使用第二种方法:

            

    【push用法$ git push  <远程主机名> <本地分支名>:<远程分支名>

               当要推送的分支名和远程分支名一致时,可缩写为: $ git push  <远程主机名> <分支名>

               当要推送的当前分支名与远程分支名一致时,可缩写为: $ git push  <远程主机名>

               例:$ git push origin test:master

                   将本地分支test推送到远程仓库origin的master分支上

                  $ git push origin test

                  将本地分支test推送到远程仓库origin的test分支上

                  $ git push origin

                  推送本地分支到相应的远程仓库origin的分支上,即本地tt分支对应远程tt分支

     

    2. ![rejected]       **** -> master (fetch first)  更新拒绝

    原因:远程仓库origin的master内容与本地test分支的内容不一样,而本地test分支在开发前没有更新代码,故提交时会出现更新拒绝。

    解决方法:$ git pull origin master   ----> 需要拉下来远程仓库的哪个分支,就将master替换成那个分支名,因为上面是要将本地test分支提交到远程master分支,所以这里写的是master。(本地所在分支为tt分支)

    3. 自动合并失败,合并冲突

    在解决问题2的时候,可能会遇到合并冲突的问题:

    原因:远程仓库master分支中有文件的内容有改动(例子中为bbb.txt文件)与本地test分支的内容不一样。

         而 $ git pull origin master 相当于先 $ git fetch master 后再 $ git merge origin/master,

         所以在merge时,发生了冲突事件。

    解决方法:修改有冲突的文件后,重新git add 或 git commit -a,然后再git push

            

     【pull用法$ git pull  <远程主机名> <远程分支名>:<本地分支名>

               当要更新合并到本地当前分支时,可缩写为: $ git pull  <远程主机名> <远程分支名>

               若当前分支与远程分支存在追踪关系,可缩写为:$ git pull  <远程主机名>

               设置追踪关系:$ git branch --set-upstream <本地分支名> <远程主机名>/<远程分支名>

               默认本地master分支自动”追踪”远程origin的master分支。

               例:$ git pull origin master:test

                   取回远程origin的master分支,并与本地test分支合并

                  $ git pull origin master

                  取回远程origin的master分支,并与本地当前分支合并

                  $ git branch --set-upstream test origin/tt   

                  指定本地test分支追踪远程origin的tt分支

                  $ git pull origin

                  本地的当前分支自动与对应的origin主机”追踪分支”(remote-tracking branch)进行合并

    【merge用法将远程仓库分支与本地当前分支合并:$ git merge <远程主机名>/<远程分支名>

                将本地其他分支与本地当前分支合并:$ git merge <本地分支名>
                例:$ git merge origin/tt

                   将远程origin的tt分支合并到当前分支

                   $ git merge test

                   将本地test分支合并到当前分支

    4. Already up-to-date 和 Everything up-to-date

    原因:Already up-to-date发生在merge时,Everything up-to-date发生在push时。

         主要是因为merge/push的本地分支与远程分支一致,并无改变。

    解决方法:正常开发即可。

  • 相关阅读:
    <转>lua 调用 C函数
    <转>VC之获取CPU序列号
    <转> 求结构体偏移
    借助 FireBug 进行轻量级代码自动生成。
    内存盘配置IIS临时目录
    导出带有复合表头的Excel方案.
    左右互博之精简代码
    [转]JavaScript 秘密花园
    MVC中,Ajax Post 数组的实现方案
    Sql 存储过程 参数传递空字符串, 到SQL 端变成了 空格!!
  • 原文地址:https://www.cnblogs.com/liuq/p/6812805.html
Copyright © 2011-2022 走看看