第二十六章 版本管理 - GIT

一、版本管理

  1. 什么是版本:一个项目从立项开始,到项目上线中间的每次修改更新迭代都是版本
  2. 为什么要管理:为了能方便的进行版本回退,检索,比对,检查等操作,所以要进行管理
  3. 如何管理:
    • 传统的管理方式:每次产生版本,当做一个文件,存起来
    • 在线管理:存网盘
    • 专业的版本管理工具:将文件转成源码,初始保存一个版本后,每次产生新的版本只记录修改了的部分,未修改的部分不重复记录
  4. 常见的版本管理工具的管理方式
    • 集中式:每个可能会产生版本的客户端,连接一台共同的服务器,将每次产生的版本信息,都上传到这个服务器,由服务器统一管理
      • 如果和服务器连接断开,所有客户端无法工作
      • 代表软件:SVN
    • 分布式:每个可能会产生版本的客户端,都可以将版本信息,存储在本地,不需要上传到服务器。
      • 可扩展成,选择性的上传到服务器
      • 代表软件:git

二、版本管理工具的常见概念

  1. 工作区:正在进行修改的文件所在的区域
  2. 暂存区:部分文件修改完成后,准备上传,还没有正式上传,在排队等待的区域
  3. 版本库(本地仓库):将暂存区中的文件提交成一个版本后,这个版本信息的存储区域
  4. 远程仓库(线上,在线):将本地版本库上传到线上特定平台,线上平台提供的版本的储存区域

三、git的安装和使用

1. 安装

  1. 下载:https://git-scm.com/downloads
  2. 安装:next安装法
  3. 打开git的命令窗口
    • windows:任意文件夹空白位置,右键,git bash
    • MAC:终端
  4. 测试:
    • 在git的命令窗口中输入:git --version,可以看到版本号

2. 基础使用流程(本地仓库)

  1. 当前设备第一次使用git,需要先进行用户信息配置,打开git的命令窗口,输入
    • 配置用户名:git config --global user.name "自己的名字"
    • 配置邮箱:git config --global user.email "自己的邮箱"
  2. 将git的命令行工具中的路径,切换到要使用版本管理工具的文件夹
  3. 初始化git环境
    • 执行git init
  4. 可以在开发区中编写文件,修改文件,准备上传
  5. 将准备被版本管理工具记录的文件添加到暂存区
    • git add 文件或文件夹名
    • git add .
    • git add *
    • git add --all
    • git add -A
  6. 将暂存区中的文件提交到版本库
    • git commit -m "本次提交的版本信息或功能的描述"

3. 辅助命令

  1. 查看状态:git status
  2. 查看版本日志:git log
  3. 查看操作日志:git reflog
  4. 查看文件的改变:git diff
  5. 回退版本git reset --hard 指定的版本号(前7位)

4. 远程仓库操作

  1. 选择一个第三方平台,注册并登录,创建一个空仓库
    • gitee.com
    • github.com
  2. 建立本地和远程仓库的连接
    • git remote add 连接别名 连接地址
    • 如:git remote add origin http://gitee.com/xxxxxx/xxx.git
  3. 上传到远程(推到远程)
    • git push 连接别名 分支名
    • 如:git push origin master
  4. 第一次从远程获取新项目
    • git clone 要获取的项目仓库地址
    • 如:git clone https://gitee.com/liyangyf/sh2205.git
    • clone时会自动建立和远程的连接,如果有该项目的操作权限,可以直接push,不用单独建立连接
  5. 在已获取的项目内更新最新版本
    • git pull 连接别名 分支名
    • 如:git pull origin master
  6. 查看当前项目内建立了哪些远程的连接
    • git remote -v
  7. 删掉远程连接地址
    • git remote rm 连接别名
  8. 注意:
    1. 一个远程仓库只能上传一个项目
    2. 不应该出现本地仓库套本地仓库的情况
      • 可以通过查看当前文件夹内是否存在.git的隐藏文件夹,判断当前文件夹是否是一个仓库

5. git的分支

  1. 分支:项目的镜像、项目的副本、项目的拷贝,一般要对项目开发一个新功能时,都会先创建一个分支,在分支上进行开发,功能开发测试完毕后,将当前功能分支合并到主分支。
  2. 查看分支:
    • 查看本地分支:git branch
    • 查看远程分支:git branch -r
    • 查看所有分支:git branch -a
  3. 创建分支:git branch 分支名
  4. 切换分支:git checkout 分支名
  5. 合并分支:git merge 分支名
    • 将A分支合并到B分支,需要先切换到B分支
  6. 上传分支:git push 连接名 分支名
  7. 删除分支:
    • git branch -d 分支名
    • 强行删除:git branch -D 分支名
  8. 注意:
    1. 在添加任何新功能或对项目进行修改之前一定要先创建并切换分支
    2. 合并分支之前一定要得到领导的确认之后,才能合并

6. 注意:

  1. 代码冲突是一种问题,但是是一种无法避免的问题
  2. 尽量不要在历史版本上创建分支
  3. 尽量不要同时修改一个文件
  4. 尽量每次开发之前都先保持最新版本
  5. 尽量每次开发完毕后都提交到远程
  6. 版本管理,其实就是文件处理,以文件操作的角度来思考版本管理

7. 团队协作时分支处理

  1. 负责人基于主分支(master)创建一个开发分支(dev)
  2. 团队成员基于开发分支(dev)创建自己的分支
  3. 团队每个成员之间尽量不要操作同一个文件
  4. 团队成员在自己的分支上完成功能开发后,上传到远程
    • git push origin 自己的分支名
  5. 线下告知负责人
  6. 负责人先从远程拉取组员分支
    • git fetch origin 要拉取的分支名
  7. 负责人切换到组员的分支,检查代码
    • git checkout 分支名
  8. 检查无误后,准备合并,切换到开发分支(dev)分支
    • git checkout dev
  9. 合并分支
    • git merge 要合并的分支名
  10. 如果出现冲突提示,找到冲突文件,查看冲突代码,线下沟通,决定要保留的代码,删除多余代码或提示符
  11. 重新提交成一个版本
  • git add .
  • git commit -m "合并了xxx分支,并解决了xxx的冲突"
  1. 如果还有其他组员的分支需要进行合并,从第6步开始重复

pull = fetch + merge

8. 补充:

  1. 在项目的根目录中创建.gitignore的文件,文件内,用来列出所有不被版本管理的文件

相关推荐

  1. 第二 版本管理 - GIT

    2024-05-05 00:48:04       14 阅读
  2. Linux 第二

    2024-05-05 00:48:04       11 阅读
  3. 第二 :Docker 内部 DNS 服务如何使用

    2024-05-05 00:48:04       22 阅读
  4. 第二 配置 Web Gateway 的默认参数

    2024-05-05 00:48:04       18 阅读
  5. 第二HTML与CSS书写规范

    2024-05-05 00:48:04       4 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-05 00:48:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-05 00:48:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-05 00:48:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-05 00:48:04       18 阅读

热门阅读

  1. 代码随想录算法训练营day56

    2024-05-05 00:48:04       8 阅读
  2. Linux上OcenBase单机版部署及基本信息查询

    2024-05-05 00:48:04       14 阅读
  3. Jar Summery 2 Linux Service Configure Example

    2024-05-05 00:48:04       12 阅读
  4. VBA 拆分Excel中的各sheet为文件

    2024-05-05 00:48:04       12 阅读
  5. 【代码随想录】day48

    2024-05-05 00:48:04       11 阅读
  6. 代码随想录leetcode200题之数组

    2024-05-05 00:48:04       14 阅读
  7. 品味酱香酒与浓香酒,选择最适合您的白酒

    2024-05-05 00:48:04       9 阅读
  8. 每日一练算法

    2024-05-05 00:48:04       10 阅读