一、开发中版本控制工具的使用场景
1. 备份
2. 回滚
3. 协同开发
4. 追溯问题代码的编写人和编写时间
二、版本控制方式——集中式和分布式
1. 集中式
集中式的代表就是svn
- 集中式 svn
- 就是把代码放到一个服务器上集中管理
- 优点:管理相对简单,版本历史和文件都集中存储在中央仓库,便于进行统一的备份、权限管理和审计等。对于一些小型团队或对版本控制要求较为传统的项目来说,使用svn可以方便的控制代码的变更流程
- 缺点:对网络依赖较高,所有的操作都要连接到中央仓库,如果网络出现问题,版本控制操作将无法进行。而且,中央仓库是整个项目的单点故障点,一旦中央仓库出现问题,如服务器宕机、硬盘损坏等,整个项目的版本控制将受到影响,虽然可以通过备份恢复,但过程相对繁琐且会导致数据丢失或不一致等问题
2. 分布式
分布式的代表就是git
- 分布式
- 每个开发者在本地都有一个完整的代码仓库副本。本地仓库是一个完整的版本控制系统,可以独立于中央仓库进行版本操作
- 优点:高度灵活,离线操作能力强。而且本地仓库是一个完整的备份,即使中央仓库出现问题,也可以通过其他开发者的本地仓库来恢复数据。
- 缺点:管理和维护相对复杂,由于每个开发者都有一个完整的仓库副本,需要协调多个仓库之间的数据同步和一致性。
git的基本操作
1. 安装时使用的git命令
(1)查看系统config
git config --system --list
(2)查看当前用户(global)配置
git config --global --list
(3)配置用户名
git config --global user.name “你的用户名”
(4)配置邮箱
git config --global user.email “你的邮箱”
2. 开发过程中的流程及git命令
(0)先看流程图
顺序:clone–》checkout–》pull–》add–》commit–》push
(1)克隆 git clone
如果你要参与一个已有的项目,首先是要把项目克隆到本地
git clone https://github.com/username/repo.git
cd repo
(2)创建新分支 git checkout -b
为了避免直接在main或master分支上进行开发,通常会创建一个新的分支
//创建一个名为new-feature的分支
git checkout -b new-feature
该命令是一下两条命令的组合:
创建一个名为new-feature的新分支: git branch new-feature
切换到新创建的new-feature分支: git checkout new-feature
(3)工作目录
在切换过来的分支上进行代码开发工作
(4)拉取最新更改 git pull
在推送本地更改之前,最好从远程仓库拉取最新的更改,以避免冲突:
// 从远程仓库(origin)中命名为new-feature的分支拉取最新的更改
git pull origin new-feature
该命令是以下两个命令的组合: // 从origin获取最新的提交、分支和标签等信息 - git fetch origin // 将远程分支 origin/new-feature的最新更改合并到你当前道所在的本地分支 - git merge origin/new-feature
(5)暂存文件 git add
将修改过的文件添加到暂存区
// 将filename文件添加到暂存区
git add filename
// 将所有文件添加到暂存区
git add .
(6)提交更改–》到本地仓库 git commit
将暂存区的更改提交到本地仓库,并添加提交信息
// 提交信息:Add new feature
git commit -m "Add new feature"
(7)推送更改–》到远程仓库 git push
将本地的提交推送到远程仓库
git push origin new-feature
(8)创建Pull Request(PR)
在GitHub或者其他托管平台上创建Pull Request,邀请团队成员进行代码审查。PR合并后,你的更改就会合并到主分支
(9)合并更改 到本地
在PR审核通过并合并之后,可以将远程仓库的主分支合并到本地分支:
git checkout main
git pull origin main
git merge new-feature
(10)删除分支
如果不再需要新功能分支,可以将其删除
git branch -d new-feature
或从远程仓库删除分支
git push origin --delete new-feature