Git

Git(分布式版本控制系统)

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git的功能特性:
从一般开发者的角度来看,git有以下功能:

1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
3、在单机上自己创建的分支上提交代码。
4、在单机上合并分支。
5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6、生成补丁(patch),把补丁发送给主开发者。
7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。

从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:

1、查看邮件或者通过其它方式查看一般开发者的提交状态。
2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
3、向公共服务器提交结果,然后通知所有开发人员。

Git官网:https://git-scm.com/
阿里镜像下载:https://npm.taobao.org/mirrors/git-for-windows/

Git安装无脑下一步

Git基本配置

git config -l  #查看配置

在这里插入图片描述

git config --system --list  #查看系统配置
git config --global --list #查看当前用户的global配置

Git相关的配置文件
Git\etc/gitconfig
在这里插入图片描述
用户全局配置文件
C:\Users\xxx/.gitconfig
在这里插入图片描述

配置用户名
git config --global user.name "xxx"

配置用户邮箱
git config --global user.email "xxx@xx.com"

在这里插入图片描述

Git基本理论

工作区域

Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:
在这里插入图片描述

  • Workspace:工作区,就是你平时存放项目代码的地方
  • Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
  • Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

在这里插入图片描述

  • Directory:使用Git管理的一个目录,也就是一个仓库,包含我们的工作空间和Git的管理空间。
  • WorkSpace:需要通过Git进行版本控制的目录和文件,这些目录和文件组成了工作空间。
  • .git:存放Git管理信息的目录,初始化仓库的时候自动创建。
  • Index/Stage:暂存区,或者叫待提交更新区,在提交进入repo之前,我们可以把所有的更新放在暂存区。
  • Local Repo:本地仓库,一个存放在本地的版本库;HEAD会只是当前的开发分支(branch)。
  • Stash:隐藏,是一个工作状态保存栈,用于保存/恢复WorkSpace中的临时状态。

Git项目搭建

在这里插入图片描述

本地仓库

创建本地仓库的方法有两种:1、创建全新的仓库 2、克隆远程仓库
1.创建全新的仓库

 # 在当前目录下新建一个Git代码库
 
git init #初始化git项目

执行之后会多出一个.git目录(隐藏目录)

2.克隆远程仓库

git clone url 
例如:
git clone https://gitee.com/ha_ha_ha123456/gitstudy.git

Git文件操作

在这里插入图片描述

  • Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged

  • Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件

  • Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改

  • Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified

查看文件状态
git status [filename]

查看所有文件状态
git status

添加所有文件到暂存区
git add . 

提交暂存区的内容到本地仓库 -m 提交信息
git commit -m "消息内容"

在这里插入图片描述

远程仓库(码云|GitHub)

注册登录设置码云

配置SSH公钥
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

$ ssh-keygen -t rsa -C "xxx"
或
¥ ssh-keygen -t rsa

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可
在这里插入图片描述
配置完会生成
配置完成后用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
在C:/用户/xxx/.ssh/
在这里插入图片描述

将公钥id_rsa.pub中内容复制到
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
或者码云–设置
id_rsa.pub文件的内容复制到公钥下,点击提交

在这里插入图片描述
使用码云创建自己的仓库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将自己创建的仓库克隆到本地
在这里插入图片描述
在这里插入图片描述

IDEA集成Git

  1. 创建一个SpringBoot项目
    将我们远程的git文件目录拷贝到项目中即可
    在这里插入图片描述
    拷贝完idea中文件颜色变化
    在这里插入图片描述
    在这里插入图片描述
  2. 在命令行或IDEA图形界面中提交到–>暂存区–>本地仓库–>远程仓库
在项目目录下  进入Git Bash Here

# 将所有未跟踪的文件添加到暂存区
git add .

# 将暂存区的文件添加到本地仓库
git commit -m "描述信息"

# 将本地仓库的文件添加到远程仓库
git push

之后可以看到远程仓库
在这里插入图片描述

Git分支

分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。

现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

#查看所有分支
git branch

#查看远程分支
git branch -r 

#新建一个分支,但依然停留在当前分支
git branch [分支名称]

#新建一个分支,并切换到该分支
git checkout-b [分支名称]

#切换到指定分支
git switch [branch-name]
git checkout [branch-name]

#合并指定分支到当前分支
git merge [branch]

#删除分支
git branch -d [branch-name]

#删除远程分支
git push origin --delete [branch-name]
git branch -dr [remote\branch]
  1. 查看当前分支
    git branch
    在这里插入图片描述

  2. 创建一个新的分支并切换到该分支
    git checkout-b dev
    在这里插入图片描述

  3. 查看你当前分支
    在这里插入图片描述

  4. 然后我们就可以在dev分支进行开发了,比如在项目下添加一个test.txt文件
    在这里插入图片描述

  5. 将文件添加到暂存区–>本地仓库
    在这里插入图片描述

  6. 这时候我们的dev分支开发完成,我们切换回master主分支
    在这里插入图片描述

  7. 切换回主分支后发现刚才添加的文件test.txt文件不见了,因为刚才那个文件提交的是dev分支,而master分支此刻的提交点没有变

  8. 我们将dev分支合并到master分支
    在这里插入图片描述

  9. 然后再查看test.txt文件,就可以看到和dev分支最新提交的是完全一样的

  10. 合并完成后,我们就可以放心删除掉dev分支了
    在这里插入图片描述

Git后续操作

可以在Git官网学习
也可以在码云官网下方学习

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值