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 "your_email@example.com"
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 无法自动合并这些修改。

相关推荐
真就死难4 小时前
Git是什么
git
机械心9 小时前
代码管理git详细使用教程及最佳实践路径
git
hkj88089 小时前
Git 常用命令
git
dawnkylin14 小时前
通过 fork 为项目做出贡献
git·github
1379003401 天前
Git 设置代理
git
xiaodunmeng1 天前
sourcetree gitee 详细使用
git
LostSpeed2 天前
git,gitea - tool - creat Gitea Empty Rep Dir
git·gitea
前端郭德纲2 天前
vscode默认终端怎么设置成git bash
git·vscode·bash
近听水无声4772 天前
git 学习(基于Ubuntu和gitee)
git
2401_826097623 天前
同步&异步日志系统-日志落地模块的实现
c++·git·vim