zoukankan      html  css  js  c++  java
  • git命令行下push代码到远程仓库出错——实例分析

    通常我们提交代码都是在IDE上完成,但有时候也会通过命令方式完成,但无论哪种方式,由于开发环境以及使用者的一些原因,都有可能出现远程push问题,现在演示一种正常流程:

         git clone {git仓库url}    //把远程仓库的代码复制到本地

          ........                        //本地进行代码修改或增加删除后

         git add ./*                 // 提交代码到本地暂存区

         git commit -m '提交的消息'    //提交代码到本git地仓库

         git  push                            //提交代码到远程仓库

    通常使用上述命令可以顺利完成代码的下载、更新、上传,不会有什么问题(这里暂不考虑多人操作的场景),这主要是执行这些命令其实它背后有一些默认的约定在里面,正常情况下是符合这些约定的,所以操作可以正常完成。


    但是再来看下面这个场景,有可能我们是直接拷贝了别人的一份代码到自己电脑下的某个目录,再按上面的操作来进行就会不灵了。可能会报以下问题

     这个问题主要根源是COPY别人的项目,那项目下的.git目录也是别人的git版本信息,所以出问题难免的,如果在这种场景下,我们对整个git原理有清晰的了解,就不难解决:

    1. 先把copy过来的项目下的.git 目录删除,当前如果没有就可省略这一步,这样当前的项目就和 git 解除了关系。

    2. 在项目目录下,执行 git init   ,主要用来初始化一个空的git本地仓库。执行完上面的命令,当前目录下会自动生成.git隐藏文件夹,该隐藏文件夹就是git版本库

    3. 执行命令对远程git仓库进行映射,映射前可以 git remote -v 查看下当前是否已有映射

        git remote add {别名}  {远程仓库URL}

    4. 执行以下命令完成让远程仓库强制覆盖本地仓库的合并(由于是重新git init初始化了本地仓库,所以需要这个操作),否则push时可能报 fatal: refusing to merge unrelated histories 的错

    git fetch --all    //拉取所有更新,不同步;
    git reset --hard origin/master // 本地代码同步线上最新版本(会覆盖本地所有与远程仓库上同名的文件),要注意origin需要替成实际的别名
    git pull  // 这个命令是为了保险再执行一次拉取

    5. git push --set-upstream {远程仓库分支}   // 一般可以这样  {别名} + 空格 +{远程分支名}

        

      

      

  • 相关阅读:
    例题3-6 环状序列UVa1584
    习题3-1 Score UVa1585
    Sublime Text3 Python虚拟环境(补充)——解决控制台中文乱码情况
    Cookie保存在本地方法介绍
    Multisim仿真
    小米手机安装charles证书
    【转】缓存
    【转】5种网络IO模型
    【转】分布式锁的几种使用方式(redis、zookeeper、数据库)
    【转】白话解析:一致性哈希算法(consistent hashing)
  • 原文地址:https://www.cnblogs.com/hzhuxin/p/14945586.html
Copyright © 2011-2022 走看看