当前位置: 首页 > article >正文

GIT版本控制与协同开发

一 版本控制

 历史阶段

1. **CVS** (Concurrent Versions System) - 第一代版本控制系统,采用集中式架构。
2. **SVN** (Subversion) - 第二代版本控制系统,同样为集中式。
3. **Git** - 第三代版本控制系统,采用分布式架构,非集中式。

 扩展概念

- **分布式技术**:在分布式版本控制中,每个开发者都有一个完整的代码库副本,能够独立地进行版本控制操作。
- **并行计算**:在超级计算机和高性能计算环境中,通过并行处理来加速计算任务。
- **集群技术**:将多个计算机系统组合成一个统一的资源池,以提高性能和可靠性。

Git 的工作流程

Git 是一款软件配置管理 (SCM) 工具,可以跟踪项目文件的历史变更。Git 会为仓库中的文件生成快照并保存这些快照之间的差异。

 Git 仓库的三个状态

1. **干净**:工作目录中的所有文件都已被提交,仓库状态一致。
2. **改变或增加**:有文件被修改或新文件尚未被 Git 追踪。
3. **暂存**:文件已被添加到缓冲区,准备提交。

常用 Git 命令

- `git init` - 初始化 Git 仓库。
- `git add` - 将变更添加到缓冲区。
- `git commit` - 提交变更并记录到仓库历史中。
- `git status` - 查看当前仓库的状态。
- `git log` - 查看提交历史日志。
- `git checkout` - 切换到特定版本或分支。
- `git tag` - 为特定的提交打标签。
- `git branch` - 管理分支。
- `git clone` - 克隆远程仓库到本地。

Git 的基本使用

1. 创建一个目录并初始化为 Git 仓库:
   ```shell
   mkdir code
   cd code
   git init
   ```
2. 将文件添加到暂存区并提交:
   ```shell
   git add *
   git commit -m "描述信息"
   ```
3. 查看提交日志和状态:
   ```shell
   git log
   git status
   ```
4. 切换到历史版本或分支:
   ```shell
   git checkout id
   git checkout master
   ```
5. 创建和管理分支:
   ```shell
   git branch f1
   git checkout f1
   git checkout master
   git merge f1
   ```

二 协同开发

 开放平台

开放的代码托管平台包括:

- **SourceForge (sf.net)**
- **GitHub**
- **Gitee**
- **GitLab**

个人仓库操作

1. 初始化本地仓库:
   ```shell
   git init
   ```
2. 添加文件到暂存区并提交:
   ```shell
   git add *
   git commit -m "描述信息"
   ```
3. 查看日志和状态:
   ```shell
   git log
   git status
   ```
4. 创建和管理分支:
   ```shell
   git branch f1
   git checkout f1
   git merge f1
   ```

  远程仓库操作

1. 克隆远程仓库到本地:
   ```shell
   git clone url
   ```
2. 从远程仓库拉取最新提交:
   ```shell
   git pull
   ```
3. 将本地提交推送到远程仓库:
   ```shell
   git push
   ```

团队协同开发流程

1. 创建组织并邀请成员加入。
2. 在组织中创建仓库并分配开发者权限。
3. 克隆远程仓库到本地进行开发。
4. 编辑文件并在本地提交更改 (`git add` 和 `git commit`)。
5. 同步本地与远程仓库:先 `git pull` 获取最新的远程更改,再 `git push` 提交本地更改。

常用命令包括 `git rebase`、`git pull` 和 `git push`,以确保团队成员之间的代码版本一致。


http://www.kler.cn/a/282804.html

相关文章:

  • 基于RK3568J多网口电力可信物联网关解决方案
  • AUTOSAR_EXP_ARAComAPI的7章笔记(3)
  • HP G10服务器ESXI6.7告警提示ramdisk tmp已满
  • Vector 深度复制记录
  • npm list @types/node 命令用于列出当前项目中 @types/node 包及其依赖关系
  • 关于GCC内联汇编(也可以叫内嵌汇编)的简单学习
  • pnpm快速入门
  • [000-01-008].第01节:Consul环境搭建
  • 【蓝桥杯集训100题】scratch绘制扇子 蓝桥杯scratch比赛专项预测编程题 集训模拟练习题第28题
  • 从零开始掌握Vue实例
  • 7,sql 基本的创建库表查询数据
  • 设计模式-抽象工厂 abstract_factory
  • 【网络安全】漏洞挖掘
  • springboot启动很慢,加载xml时卡住 或者 {dataSource-1} inited卡住 或者 primary数据库配置错误,很久启动不起来
  • 美颜相机java
  • C# 以管理员方式启动
  • 注册免费的vps:infinityfree
  • Spring MVC概述
  • (三)Kafka离线安装 - ZooKeeper开机自启
  • 搭建自己的金融数据源和量化分析平台(八):解析PDF财报中的资产负债表
  • Power BI仪表盘与报告实施方案:让数据变得生动且有用!
  • 目标检测:Cascade R-CNN: Delving into High Quality Object Detection - 2017【方法解读】
  • 【解析几何笔记】12.向量的混合积及其应用
  • 51单片机——数码管控制
  • STM32(F103ZET6)第二十课:FreeRtos操作系统的应用
  • 低代码归根结底差不多,但又差很多