Git--分布式版本控制

本文介绍了Git的基本概念、版本控制类型、分布式优势、工作流程(包括工作区、暂存区、版本库和远程仓库),以及如何在IntelliJIDEA中集成Git并操作本地和远程仓库。还涵盖了Gitee的使用和冲突解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

Git简介

什么是版本控制?

集中式版本控制

分布式版本控制

Git概念

Git优点

Git工作流程

工作区

暂存区

版本库

远程仓库

局域网

互联网

总的流程

在本地安装Git

安装git

Git常用的一些命令

 Idea集成Git并添加项目到git仓库

1.idea集成git

 2.初始化本地Git仓库项目

3.添加到缓存区

 4.提交到本地仓库

 5.Git本地库操作

Gitee

Gitee简介

使用

Idea集成Gitee并提交代码到第三方仓库

1.下载gitee插件

 2.添加Gitee账号​编辑

 3.推送本地仓库代码到远程仓库​编辑

 4.从远程仓库下载/克隆​编辑

​编辑5.更新远程仓库到本地

 6.仓库的基本管理

7.冲突解决


【前言】:本篇主要介绍Git,git工作流程,以及集成等。如有错误,还请多多斧正。

Git简介

首先,在将git之前有必要说一下这个版本控制。

什么是版本控制?

版本控制是对软件开发过程中的代码程序,配置文件等等变更的管理,这也是软件配置管理的核心思想之一。

通俗一点来说,就是一个代码仓库。

主要解决两个问题,一是记录一个文件多次修改的历史记录,生成多个不同的版本号;

二是在团队开发过程中可以多人共享代码。

版本控制又分为集中式版本控制和分布式版本控制;

集中式版本控制

所有开发者共同使用一个服务器仓库,这个服务器仓库记录所有文件的历史版本

f9ba3d05be934cd7a6ef651404e81e74.png

优点:每个人都可以在一定程度上看到项目中的其他人正在做些什么,管理员可以集中管理,比起在本地数据库管理更为轻松。

缺点:如果因为服务器的问题而使版本记录丢失,其他开发者本地是没有历史版本的,如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。

分布式版本控制

像 Git 这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库),这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一 次文件提取操作,实际上都是一次对整个文件仓库的完整备份。
简单点来说,每个开发者本地都有一个本地仓库,用来保存文件的历史版本。服务器上只保留推送来的最新版本。

2526d74d08ae47618e701c64471b4e95.png

优点:没有网络时,可以在本地进行开发,等到有网的时候再更新到远端仓库;

          即使服务器出现问题导致最新版本丢失,每个开发者本地也保存了历史版本。更新到服务器            仓库即可恢复。

Git概念

Git 是一个 免费  的  开源 分布式版本控制系统
旨在快速高效地处理从小型到大型项目的所有内容

Git优点

Git 易于学习, 占地面积小,具有闪电般的快速性能。它具有诸如 Subversion,CVS 之类的版本控制工具,具有廉价的本地分支,便捷的暂存区域和 多个工作流等功能。

一句话:容易学习内存小效率高

Git工作流程

60b182088bec40278c2f2a8d6afad8d6.png

在介绍git工作流程之前,首先来认识几个名词概念,磨刀不误砍柴工。

工作区

写代码的区域,就是你在电脑里能看到的目录,在本地磁盘创建项目(一般在开发工具中完成).

暂存区

可以理解为缓存区,英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,添加工作区代码到暂存区,暂存区代码是临时存储,可以撤销.

版本库

也叫本地仓库,工作区有一个隐藏目录 .git,是 Git 的版本库,提交暂存区代码到本地仓库,生成历史版本记录,历史版本记录不可删除,可以查看不同时期提交的历史记录,和其他版本做比较.

远程仓库

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库

局域网

GitLabe

互联网

GitHub(国外的网站)

https://github.com/

Gitee 码云  (国内网站)

https://gitee.com/

总的流程

c53100f59ea64314ac475b53518bb68a.png

 下面来解释一下各个"圆柱"与"箭头"的含义。

workspace:工作区

staging area:暂存区/缓存区

localrepository:本地仓库

remote respository:远程仓库/服务器仓库

add:将工作区代码添加到暂存区

commit:暂存区代码提交到本地版本库(这一步在本地仓库生成历史版本)

push:本地版本库代码推送到远程仓库

pull:从远程仓库拉取代码到本地

在本地安装Git

安装git

7473caf288e04aa9bee578363472772f.png387aaca173604d808a2765fac88429ad.png3c831e351e854cedb8fc8978e5e506e5.png613a13312b9f452cb3800ab86071733c.png21766b4654bb40bda686d1add310fc08.pnga0db8ce602a34f6bbb7f966d20ccc3d2.png082115e4834c4406ba8a6330b69b76ba.png896b54c376c84742aef11b971cc3701e.pngf51a0b969ce643059764f4a3dad28779.pngc1022eacb8514018a0e32fc7b1375913.pngba186669dbd64577adb57fdca53445fb.png7318c3c68d0040569116ea33989f573c.png643247d22ca8433d81d276bc4af9fcf2.pngeff6391ffbed42569e47a8366baeefea.png

Git常用的一些命令

这里的a.txt 只是一个文件名,并不是固定命令代码

git add a.txt  添加到缓存区

git commit a.txt  提交到本地仓库

git reset a.txt  从缓存区撤回

git clone 地址  从所使用的地址上克隆/复制项目

 安装完成后先来简单演示一下

1.在任意外置创建一个文件夹,在这个文件夹里创建热恩以一个文件

  我这里在桌面创建一个git文件夹里面放了一个hello.txt这样一个文件

2.打开Git Bash 命令窗口(右键空白处打开即可)

打开之后就会出现这样一个窗口

a4587e57bad84d57ac08133095bb80c4.png

初始化一个git仓库

代码:第一个git是GitBush固定命令 第二个则是初始化仓库文件名

git init git

728044b695ac4d3c8187bd3eb0709410.png

 添加一个文件到缓存区

首先进入到这个文件夹中操作

 代码:进入到这个文件夹

cd git

添加

git add hello.txt

3a9b396b67f34d28aad1caa4bc2eee26.png

 查看缓存区

代码:

git ls-files

6bb1f004d76947789dba6f4f8a3b2357.png

撤销缓存区的文件

代码: 撤销所有文件

git reset .

撤销指定文件

代码:

git reset hello.txt

e5fb5790c71145f090149427d9c751cc.png

 这里我只添加了一个文件,撤销之后就没有了,所以不显示

注意:这里要提交到本地仓库时要设置一个邮箱,与名字,邮箱最好选择自己经常使用的,这在后面还会用到,需要验证。

提交到本地仓库

git config --global user.email "自己的邮箱"
git config --global user.name "Your Name"

代码:

git commit -m 注释

8a9b8627df45416a85be1c08b2679668.png

 必须写注释,不然无法运行

 查看仓库状态

代码:

git status

9907d5e05b5b4a0cad83ef2fff7bceb7.png

 就可以看到提交状态了

 Idea集成Git并添加项目到git仓库

1.idea集成git

创建一个maven项目

248d3907ccb14b1f957914183866c878.png

 这里可选可不选,本次集成暂时用不到a77855f9c58346d8abe063a27400c40a.png

在file  setting中

79a53fd79b98440a82bce0bb4cd1d7c5.png

 2.初始化本地Git仓库项目

00291275b0794724a681769a6d18ca43.png

03f3c78e685c442898fcdd6f7482d866.png

3.添加到缓存区

 下载一个.ignore插件帮助我们管理过滤文件

75bce8abf84b496183a31ee277ea8419.png

 生成.gitignore文件

7321d582dfa642f4a626398719f0c888.png

 b3a52509fe5c402fa2991decd5f7d84e.png

 添加文件到缓存区d2c0ae2ee0e8475eb7c742285b93f7ab.png

 4.提交到本地仓库

ea444050df534c16a18e063b686c9ae4.png

 221d0cf58ae1447d8304d714ccbf421c.png

 5.Git本地库操作

先来查看一下历史版本

652cc39ef7a2497b8e89aa8d57585eee.png

 比较历史版本4a4088076882406cb8cd5186b3c7de96.png

 还可以选择历史版本来覆盖现在的版本。

Gitee

Gitee简介

码云  开源中国 出品  git代码托管平台

https://gitee.com/

使用

注册,不用我多说了,作为21世纪新青年,不用我说,大家都知道。

登录后在个人中心完善信息,补全电话或邮箱。

faeaf567cba34d8bbbb2c979cc31af9b.png

 设置公钥,可以点击查看怎样生成公钥并设置,相信Gitee使用说明比我更容易使大家理解。

Idea集成Gitee并提交代码到第三方仓库

1.下载gitee插件

搜索下载安装即可

003f5f9c586a46c28645b6b8d4901a74.png

 2.添加Gitee账号535960b93c8947349590df8afd7454da.png

 d56603fec82d40d3939ed08e457b494d.png

 这样就算成功了a8eb6e5718d040e094928ac54f5087fe.png

 3.推送本地仓库代码到远程仓库9793b4e6db6e40df8d50da9f098def32.png

8521397ce78b43519b0e76d6b91ec777.png

c72d638b61ab487ba84270c90281b27a.png

1fbc5991aba2480cb9a2a9db94620f81.png28abd63f02d441618cb99807a327d4a0.png

4d875d1c65a2417498828a548db29dbe.png

 4.从远程仓库下载/克隆a69eb3d0c53a48bb99da84201a7b03ed.png

 这里是我的ssh代码,当让要克隆复制,就要知道取药复制的链接074361c4040b436d8a6f28f7951848a6.png

b0b54c63eac149729b565b858ef411bb.png

9d17fbec99444963ae05e5a7ae40a365.png5.更新远程仓库到本地

这里我直接从远程仓库修改模拟管理员从本地推到远程仓库的新版本

更新前:

fed9f3e8a8b1423d9aa62bb2730a9d51.png

更新

44b92fe9d06944cbbd6ab1a31742c65d.png

 更新后:128ea00013f74edf860e77f152b52196.png

 6.仓库的基本管理

网站上都比较好操作,

设置开源啊,什么仓库成员管理等等,就不做过多赘述了。

7.冲突解决

什么原因导致的呢?

A在更新到远端仓库时,B在A之前推送到远端仓库,并且和A推送的是同一个文件,同一段代码,B推送完成后,A没有更新到本地导致的。

我接下来模拟一下。

首先我在远端仓库修改代码,模拟其他成员推送过的新版本。

这是服务器最新代码(默认我不知道):

bb26fd9a2f1d4a90826dff6bf6fdec9e.png

 这是我也要推送我的代码

0f98abc4aae74975b0ba3161ab62789d.png

 这是发生冲突了f51d2f655a5341728e8c609d841a7194.png

 当然这也是有解决办法的

b43d67a3ea234262b8a11e410045c295.png

d4fb42d8113048c5b66c8588d21065d9.png

 根据实际添加替换即可。

b1cc1b27ff464e0b998ede370badd165.png

 更新之后就好了0cc012a711c64123be0a24100cc51e2c.png

 【尾言】:现在你已经对git及其工作流程有了大致了解,快去上手试试吧。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值