GIT使用指南(二)

258 阅读3分钟

这是我参与8月更文挑战的第31天,活动详情查看:8月更文挑战

GIT 分支

  • git 分支,就是我们自己把我们的整个文件夹分成一个一个独立的区域

  • 比如我在开发 登录 功能的时候,可以放在 login 分支下进行开发

    • 开发 列表 功能的时候,可以放在 list 分支下进行开发
    • 大家互不干扰,每一个功能都是一个独立的功能分支
  • 这样开发就会好很多

  • git 在初始化的时候,会自动生成一个分支,叫做 master

  • 是表示主要分支的意思

  • 我们就可以自己开辟出很多独立分支

  • 开辟一个分支使用 git branch 分支名称 指令

    # 开辟一个 login 分支
    $ git branch login
    
  • 查看一下当前分支情况

    # 查看当前分支情况
    $ git branch
    

在这里插入图片描述

  • 会看到,当前有两个分支了

  • 一个是 master,一个是 login

  • 前面有个 * 号,并且有高亮显示的,表示你当前所处的分支

  • 我们对 登录 功能的开发要移动到 login 分支去完成

  • 我们切换所处分支使用 git checkout 分支名称

    # 切换到 login 分支
    $ git checkout login
    
  • 然后我们在整个分支上进行 登录 功能的开发

  • 开发完毕以后,我们就在当前分支上进行提交

  • 提交以后我们进行分支切换

    • 发现 master 上面还是最初始的状态
    • login 分支上有我们新写的 登录 功能的代码
  • 我们按照分支把所有功能都开发完毕了以后

    • 只要把所有代码都合并到 master 主分支上就行了
  • git 的合并分支,只能是把别的分支的内容合并到自己的分支上

  • 使用的指令是 git merge

    # 切换到 master 分支
    $ git checkout master
    
    # 把 login 的内容合并到自己的分支
    $ git merge login
    
  • 这个时候,我们刚才在 login 上开发的东西就都来到了 master 主分支上

  • 如果是有多个分支的话,那么所有的最后都合并到 master 分支上的时候

  • 我们的主分支上就有完整网站的所有页面

    • 各个分支上都是单独的页面和功能
  • 这个时候我们开辟的分支就没有什么用了,就可以删除分支了

    1. 先切换到别的分支

    2. 使用指令 git branch -d 分支名称 来删除

      # 先切换到别的分支
      $ git checkout master
      
      # 删除 login 分支
      $ git branch -d login
      
常用的分支命名
  • 我们的分支命名也要规范一些
  • 我们有一些分支名称大家都默认是有特殊意义的
  • 比如我们之前的写的 login 分支就是不规范的分支名称
    • 而且也是不规范的分支操作
  • 常见的分支名称
    1. master:主分支,永远只存储一个可以稳定运行的版本,不能再这个分支上直接开发
    2. develop: 主要开发分支,主要用于所用功能开发的代码合并,记录一个个的完整版本
      • 包含测试版本和稳定版本
      • 不要再这个分支上进行开发
    3. feature-xxx:功能开发分支,从 develop 创建的分支
      • 主要用作某一个功能的开发
      • 以自己功能来命名就行,例如 feature-login / feature-list
      • 开发完毕后合并到 develop 分支上
    4. feature-xxx-fix: 某一分支出现 bug 以后,在当前分支下开启一个 fix 分支
      • 解决完 bug 以后,合并到当前功能分支上
      • 如果是功能分支已经合并之后发现 bug 可以直接在 develop 上开启分支
      • 修复完成之后合并到 develop 分支上
    5. hotfix-xxx: 用于紧急 bug 修复
      • 直接在 master 分支上开启
      • 修复完成之后合并回 master

GIT 推送

  • 我们的所有内容已经全部保留在了本地历史区
  • 理论上是不会丢失了
    • 但是如果把文件夹删除了,还是没有了
  • 所以我们要使用 git 把我们所有的内容推送到 github 上面保存起来
  • 那么就本地文件夹就算删除了,那么远程上面还有一份,还可以拿回来使用
  • 所以我们现在就要把本地内容推送到远程
  • 这个时候我们接需要一个 github 的账号了
  • 先去 github官网 注册一个账号
开辟一个远程仓库
  • 有了 github 账号以后

  • 我们就登录 github 网站,开辟一个远程仓库

  • github 的远程也是以一个仓库一个仓库的形式来保存代码

    • 我们可以在一个 github 上保存很多的项目
    • 只要一个项目一个仓库就可以了
  • 按照下面步骤开辟仓库

    1. 先点击新建仓库

在这里插入图片描述

  1. 按照要求填写内容

在这里插入图片描述 3. 出现下图表示创建仓库成功

在这里插入图片描述

  • 现在我们的远程仓库建立完毕了,我们就要把我们的项目代码整个上传了
添加仓库地址
  • 接下来,要使用 git 上传代码了

  • 我们先要告诉 git 上传到哪里

  • 也就是给 git 添加一个上传的地址

  • 我们还是来到我们的项目文件夹

  • 使用 git remote add origin 仓库地址 来添加

    # 在项目文件夹下打开 git base
    # 添加仓库地址
    $ git remote add origin https://github.com/guoxiang910223/ceshi1913.git
    
    • remote:远程的意思
    • add:添加的意思
    • origin:是一个变量名(就是指代后面一长串的地址)
上传
  • 上传到哪里的地址我们已经添加好了

  • 接下来就是上传内容了

    • 上传要保证 历史区 里面有内容
    • 上传的过程会把 历史区 里面所有的内容上传到远端
  • 我们使用 git push 指令来上传

    # 上传内容
    $ git push -u origin master
    # 表示把内容上传到 origin 这个地址
    # master 是上传到远程的 master 分支
    
    • -u 是我们第一次的使用用到了,是为了记录一下用户名和密码
    • 下次上传的时候就不需要再写了
  • 第二次上传

    • 第二次上传的时候,因为有刚才的记录,就不需要再写 originmaster

    • 会默认传递到 origin 这个地址的 master 分支上

    • 除非你要传递到别的分支上的时候再进行书写

      # 第二次上传
      $ git push
      
  • 到这里,就完成了一次 git 推送

  • 这个时候本地的文件夹就真的可以删除了

  • 因为远程有一份我们的内容,本地的删除了,可以直接把远程的拉回来就行

GIT 克隆

  • git 克隆是指把远程仓库里面的内容克隆一份到本地

  • 可以克隆别人的 公开 的仓库,也可以克隆自己的仓库

  • 克隆别人的仓库,我们只能拿下来用,修改后不能从新上传

  • 克隆自己的仓库,我们修改后还可以再次上传更新

  • 我们先找到一个别人的仓库,或者自己的仓库(这里以 jQuery 的仓库为例)

在这里插入图片描述

  • 复制好地址以后,选择一个我们要存放内容的文件夹(我这里以桌面为例)

  • 直接在想存放内容的位置打开 git base

  • 输入克隆指令 git clone 仓库地址

    # 直接克隆仓库
    $ git clone https://github.com/jquery/jquery.git
    
  • 等待一段时间

  • 你就会发现你的文件夹里面多了一个叫做 jquery 的文件夹

  • 里面就是人家仓库的所有内容

GIT 下拉

  • 不管是你克隆下来的仓库还是别的方式弄得本地仓库

  • 当人家的代码更新以后,你想获得最新的代码

  • 我们不需要从新克隆

  • 只要拉取一次代码就可以了

  • 直接在项目文件夹里面使用指令下拉

    # 拉取远程最新代码
    $ git pull
    
  • 这样一来,你本地的仓库就可远程的仓库同步了

GIT 冲突

  • git 冲突是指在我们的上传过程中

  • 本地的版本和远程的版本不一致导致的

  • 这个时候只要先使用 git pull 拉取回来

    • 让本地和远程保持一致
  • 然后再从新上传就好了

  • 但是 git pull 相对不安全,因为会自动和本地内容合并