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

git版本控制工具介绍

版本控制

版本控制是软件开发过程中用于管理代码变更的重要手段,它可以记录代码的历史版本,方便开发者进行回溯、协作和问题排查。本地版本控制、集中版本控制和分布式版本控制是三种不同的版本控制模式

本地版本控制

本地版本控制是最基础的版本控制方式,它只在单个计算机上进行操作,通过某种机制来管理文件的不同版本。这种方式主要用于个人开发者管理自己的项目,记录文件在不同时间点的状态。(在个人电脑上留存了个人的版本信息记录)

集中版本控制

集中版本控制采用中央服务器来存储所有文件的版本信息,团队成员通过连接到中央服务器来获取和提交代码。所有的版本数据都集中管理,开发者需要与中央服务器进行交互来进行版本控制操作(SVN),便于团队协作,但如果中央服务器出现故障,所有的版本会有丢失风险

分布式版本控制

分布式版本控制中,每个开发者的本地仓库都是一个完整的版本库,包含了项目的所有历史记录和版本信息。开发者可以在本地进行各种版本控制操作,如提交、分支管理等,而不需要实时连接到中央服务器。缺点是占用空间大,因为每个开发者的本地仓库都包含完整的项目历史记录

版本控制工具Git

Git 是一款强大的分布式版本控制系统,被广泛应用于软件开发中,用于管理项目代码的变更历史。以下将从基础概念、安装配置、基本操作、分支管理、远程仓库协作等方面详细介绍 Git 版本控制。

基础概念
  • 仓库(Repository):包含项目所有文件以及文件历史记录的集合。分为本地仓库和远程仓库,本地仓库在开发者自己的计算机上,远程仓库通常存放在代码托管平台(如 GitHub、GitLab 等)。
  • 提交(Commit):将文件的当前状态保存到本地仓库的操作,每次提交都会生成一个唯一的哈希值(commit ID),用于标识这次变更。
  • 分支(Branch):可以理解为项目的不同开发线路,每个分支独立发展,互不影响。通过创建分支,开发者可以同时进行多个不同功能的开发。
  • 合并(Merge):将一个分支的变更整合到另一个分支的操作。例如,将开发分支的代码合并到主分支。
  • 拉取(Pull):从远程仓库获取最新代码并合并到本地仓库的操作。
  • 推送(Push):将本地仓库的提交推送到远程仓库的操作。
安装与配置
  • 安装:根据不同的操作系统,可以从 Git 官方网站 下载相应的安装包进行安装。
  • 配置用户信息:安装完成后,需要配置用户名和邮箱,这些信息会关联到你的提交记录。
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
git config -l
git config --system --list
git config --global --list

检查是否配置成功

基本操作

git一般有四个工作区域,分为工作区、暂存区、本地仓库、远程仓库

初始化仓库

在项目目录下执行以下命令,将一个文件夹变成仓库。

git init

添加文件到暂存区(仓库)

将修改或新增的文件添加到暂存区,准备进行提交。

# 添加单个文件
git add file_name
# 添加所有文件
git add .

提交文件到本地仓库

将暂存区的文件提交到本地仓库,并添加提交说明。

git commit -m "提交说明"

可以右键打开GUI观察添加过程

查看状态

查看当前工作目录和暂存区的文件状态。

git status

查看提交历史

查看仓库的提交历史记录。

git log

远程仓库协作

关联远程仓库

    1. 注册gitee账号,注册完后进入设置配置公钥

     2. 通过命令 ssh-keygen 生成 SSH Key:

        输入ssh-keygen命令,然后全部回车

查看生成的公钥和私钥:ls ~/.ssh/

读取公钥文件:cat ~/.ssh/id_ed25519.pub(这个是我自己的公钥文件,替换成你自己的公钥文件之后执行)

将生成的公钥粘贴到SSH公钥框中:

接下来创建仓库:

创建好后取SSH地址,创建一个用于接收远程仓库的文件夹,输入克隆命令:git clone 输入你自己的SSH地址,刚开始创建仓库的小伙伴会遇到警告,因为仓库中没有文件,不必理会

此时用于接收远程仓库的文件夹里会有对应文件,打开后有.git文件

接下来就可以从本地仓库向远程仓库发送文件了

在该文件夹下输入

git add .
git commit -m "第一次发送到远程仓库"
git push 

此时在远程仓库中就生成了对应的文件夹

再放一遍操作关系图片

 分支管理

在软件开发等项目中,通常会有多个功能需要同时开发,或者需要同时进行新功能开发和旧版本维护等工作。通过创建不同的分支,开发人员可以在各自的分支上独立地进行开发、测试等工作,互不干扰。

创建分支

创建一个新的分支。

git branch branch_name

切换分支

切换到指定的分支。

git checkout branch_name

创建并切换分支

可以将创建分支和切换分支的操作合并为一步。

git checkout -b branch_name

合并分支

将指定分支的变更合并到当前分支。

# 假设当前在主分支,要合并 feature 分支的变更
git merge feature

删除分支

删除指定的分支。

git branch -d branch_name

执行完分支语句后需要在重新发送到远程仓库,在发送之前先要拉取远程仓库里的内容

        原因:在多人协作开发中,不同开发者可能会同时对同一文件的同一部分进行修改。如果直接推送本地修改而不先拉取远程更新,就可能导致本地和远程的修改相互冲突,Git 无法自动合并这些修改。

相关文章:

  • Python简单语法
  • 从二叉树到红黑树
  • 【R语言】GitHub Copilot安装-待解决
  • 6.2.2 E-R模型
  • 系统思考—系统结构
  • Ubuntu22.04配置cuda/cudnn/pytorch
  • 799. 最长连续不重复子序列
  • iOS 中使用 FFmpeg 的高级功能 - 滤镜(Filters)
  • 切面收集日志
  • MapStruct 中 @BeforeMapping 和 @AfterMapping 注解的使用详解
  • 大数据学习(49) - Flink按键分区状态(Keyed State)
  • 【Java基础】数组性能优化
  • DeepSeek崛起的本质分析:AI变局中的中国机会
  • C 程序多线程拆分文件
  • Linux---软连接与硬链接
  • 【PowerBI】使用形状地图创建地图可视化
  • less-8 boolen盲注,时间盲注 函数补全
  • 瑞萨RA-T系列芯片ADCGPT功能模块的配合使用
  • key-value---键值对
  • --- Mysql事务 ---
  • 政府网站建设工作室/培训心得简短50字
  • 怎么重启网站服务器/搜索引擎优化名词解释
  • 手机网站如何做外链/泉州关键词优化软件
  • 璧山网站建设/怎么提高百度搜索排名
  • 旅游网站建设方案书/免费发布外链
  • 手机网站被拦截怎么解除/女生学电子商务好吗