【Git】Git-远程仓库

二、Git

3. 远程仓库

  • 总结:
    • 凡是涉及到远程仓库的操作,如clonepush, pull都需要输入密码,除非自己设置有效时间免登录
    • 从远程仓库克隆到本地,使用SSH密钥更好,麻烦更少
    • 编辑代码也好,标签也好,分支也好,都是在本地仓库完成后推送至远程仓库,其原理都可以看成一样的
3.1 新建远程仓库
  1. 注册Github(Gitee)

  2. 创建仓库入口

  3. 编辑仓库信息

  4. 查看仓库地址


3.2 本地电脑SSH密钥生成绑定git账号
  1. 安装git,首先去git官网下载git,https://git-scm.com/downloads,下载.exe格式并安装。

  2. 从程序目录启动“Git Bash”

  3. 键入命令:ssh-keygen -t rsa -C "email@email.com","email@email.com"是你的github账号

  4. 此时,你的C:\Users\admin.ssh这个路径下会生成两个文件:id_rsa和id_rsa.pub

  5. 用记事本打开id_rsa.pub文件,复制内容,在github.com的网站上到ssh密钥管理页面,添加新公钥,随便取个名字,内容粘贴刚才复制的内容。

  6. 完成(Gitee同理)


3.3 克隆项目
  • 立项:克隆远程仓库+配置身份信息+创建项目+推送项目到远程仓库

    1. 克隆远程仓库的命令

      git clone https://github.com/Cyril-hub/git-info.git
      

      注意:如果此步骤出现以下的报错提醒

      解决方法如下:

      1. 命令中把https换成git
      2. 命令中把https换成http,虽然会提示报错,但能正常克隆
      3. 先输入git config --global http.sslVerify "false"命令,再克隆

      原因如下:

      1. 报错中的文字有open_SSL,这是一个https的加密协议。因此,在未登录的情况下,默认不能使用https协议下载github上面的文件,否则会被协议拦截。当替换成http协议属于未加密,不会拦截下载请求
      2. 把https换成git可以下载,应该是github内部自定义的通信协议,所以git协议也不会拦截下载请求
      3. 先输入命令解除ssl验证后,再次克隆https协议便不会拦截。
      4. 如果是登录情况下,https协议则不会拦截,也可以下载文件。登录情况指的是配置Git的账号密码,该账号密码就是你的github账号密码,大家通常出现下载报错:fatal: unable to access ‘https:xxxx’ OpenSSL SSL_read: Connection was reset, errno 10054,一般是由于账号没有配置。
      5. 总结:登录账号能解决问题,原因是https协议属于加密协议,需要验证,否则不让各种git操作。把https替换成git可行是github内部自定义协议,把https替换成http可行是因为http协议属于未加密,否则需要输入命令先解除ssl验证。

      克隆远程仓库到本地

      克隆后本地文件内容

    2. 配置身份信息

      进入本地文件后,输入相关命令

      git config user.name 'xxxx'
      git config user.email 'xxxx@xxx.com'
      

      配置后的信息位置如下

    3. 创建项目

    4. 推送项目到远程仓库

      推送命令

      # 工作区添加到暂存区
      git add .
      # 暂存区提交到仓库去
      git commit -m '立项'
      # 推送到远程仓库
      git push
      

      推送后在github上查看

    注意:

    1. 使用https协议克隆项目到本地会出现很多麻烦,以后还是使用ssh密钥进行克隆。
    2. 使用ssh进行克隆后,在git push 和 pull都需要手动输入密码,如果要避免这样的麻烦,可以在git bash键入命令$ ssh-keygen -p,在设置密码的时候回车即可。
3.4 协同开发项目
  • 当不同的客户端从远程仓库克隆项目后进行身份信息的配置后,即可协同开发一个项目

  • 张三与经理的协同开发

    • 张三

    • 经理

  • 通过不断地循环交替同步与提交,实现协同开发项目

  • 总结:

    • 要使用git命令操作仓库,需要进入到仓库内部
    • 要同步服务器代码就执行:git pull
    • 本地仓库记录版本就执行:git commit -am '版本描述'
    • 推送代码到服务器就执行:git push
    • 编辑代码前要先pull,编辑完再commit,最后推送是push

3.5 代码冲突
  • 多人协同开发,避免不了代码冲突的情况,由于多人同时修改同一个文件,这将导致开发被影响进度。一旦出现代码冲突,先解决后再继续后续开发。
  • 解决冲突:
    • 原则:谁冲突谁解决,并且一定要协商解决
    • 方案:保留所有代码 或者 保留某一人代码
    • 解决完冲突代码后,依然需要addcommitpush
  • 减少冲突的操作方式
    • 养成良好的操作习惯,先pull在修改,修改完立即commitpush
    • 一定要确保自己正在修改的文件是最新版本的
    • 各自开发各自的模块
    • 如果要修改公共文件,一定要先确认有没有人正在修改
    • 下班前一定要提交代码,上班第一件事拉取最新代码
    • 一定不要擅自修改同事的代码

3.6 标签
  • 当某一个大版本完成之后,需要打一个标签。其作用是记录大版本,备份大版本的代码。

  • 模拟经理打标签

    1. 进入经理本地仓库

      cd Desktop/manager/git-info
      
    2. 经理在本地打标签

       git tag -a 标签名 -m '标签描述'
       例:
       git tag -a v1.0 -m 'version 1.0'
      

    3. 经理推送标签到远程仓库

       git push origin 标签名
       例:
       git push origin v1.0
      

    4. 查看打标签结果

    5. 补充:删除本地和远程标签

        # 删除本地标签
        git tag -d 标签名
        
        # 删除远程仓库标签
        git push origin --delete tag 标签名
      

3.7 分支

  • 分支的作用:

    • 区分生产环境代码以及开发环境代码
    • 研究新的功能或者攻关难题
    • 解决线上bug
  • 分支的特点:

    • 项目开发中公用分支包括master、dev
    • 分支master是默认分支,用于发布,当需要发布时将dev分支合并到master分支
    • 分支dev是用于开发的分支,开发完阶段性的代码后,需要合并到master分支
  • 模拟经理分支操作

    • 对比:操作分支前的代码
    1. 进入经理本地仓库

      cd Desktop/manager/git-info
      
    2. 查看当前分支

      git branch
      

      注意:没有创建其他分支时,只有master(main)分支

    3. 经理创建并切换到dev分支

      git checkout -b dev
      

    4. 设置本地分支跟踪远程指定分支(将分支推送到远程)

      git push -u origin dev
      

      执行这一步后,在远程仓库才能看到新的分支

    5. 经理在本地dev分支编辑代码并推送至远程仓库dev分支

    6. 将dev分支合并到master分支

      • 提示:只有当dev分支合并到master(main)分支成功,张三才能获取到num3

        1. 先切换到master(main)分支

            git checkout main
          

        2. dev分支合并到master(main)分支

            git merge dev
          

        3. 经理推送合并分支操作到远程仓库(推送至远程仓库)

          # 合并分支默认在本地完成,合并后直接推送即可
          git push
          

    7. 张三同步经理合并后的num3



posted @ 2022-04-27 13:29  陈景中  阅读(106)  评论(0编辑  收藏  举报