git版本控制工具介绍

版本控制

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

本地版本控制

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

集中版本控制

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

分布式版本控制

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

版本控制工具Git

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

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

检查是否配置成功

基本操作

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

初始化仓库

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

bash 复制代码
git init

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

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

bash 复制代码
# 添加单个文件
git add file_name
# 添加所有文件
git add .

提交文件到本地仓库

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

bash 复制代码
git commit -m "提交说明"

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

查看状态

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

bash 复制代码
git status

查看提交历史

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

bash 复制代码
git log

远程仓库协作

关联远程仓库

  1. 注册gitee账号,注册完后进入设置配置公钥
  1. 通过命令 ssh-keygen 生成 SSH Key:

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

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

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

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

接下来创建仓库:

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

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

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

在该文件夹下输入

bash 复制代码
git add .
git commit -m "第一次发送到远程仓库"
git push 

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

再放一遍操作关系图片

分支管理

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

创建分支

创建一个新的分支。

bash 复制代码
git branch branch_name

切换分支

切换到指定的分支。

bash 复制代码
git checkout branch_name

创建并切换分支

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

bash 复制代码
git checkout -b branch_name

合并分支

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

bash 复制代码
# 假设当前在主分支,要合并 feature 分支的变更
git merge feature

删除分支

删除指定的分支。

bash 复制代码
git branch -d branch_name

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

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

相关推荐
qq_42764906几秒前
git命令大全(持续更新)
git·push·git语法·vscode的git语法
马达加斯加D2 小时前
git --- cherry pick
git
laugh123214 小时前
GitLab 服务器宕机时的项目代码恢复方法
服务器·git·gitlab·数据恢复
森叶6 小时前
Git Bash 设置Notepad++作为默认编辑器
git·编辑器·notepad++
2401_840192277 小时前
git的作用,以及和github的区别
开发语言·经验分享·git·python·devops
时79 小时前
git常用知识
git
就叫飞六吧9 小时前
git克隆项目报错:error: unable to create file vue...... Filename too long
前端·vue.js·git
琳沫lerlee11 小时前
【Git 暂存操作指南2】
git·暂存
被放养的研究生1 天前
Git和GitCode使用(从Git安装到上传项目一条龙)
git·elasticsearch·gitcode
Beyond欣1 天前
RepoReporter 仿照`TortoiseSVN`项目监视器,能够同时支持SVN和Git仓库
git·svn