一篇搞定Git!

26 篇文章 0 订阅

写在前面

该笔记是根据B站狂神Git视频+狂神说Git博客总结出来用以复习。

视频地址:https://www.bilibili.com/video/BV1FE411P7B3

博客地址:https://blog.csdn.net/qq_33369905/article/details/106647320

强烈安利狂神!

版本控制

啥是版本控制?

所谓版本控制就是对版本一、版本二、版本三…最终版本等等进行管理,是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。

版本控制分类

1、本地版本控制

记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如RCS。

2.集中版本控制 SVN

所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改,

所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。而且,所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份。

3.分布式版本控制 Git

每个人都拥有全部的代码安全隐患!

由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。可以在本机查看版本信息,没网可以提交,但是push还是需要联网。

不会因为服务器损坏或者网络问题,造成不能工作的情况!

Git与SVN的主要区别

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。

Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,**工作的时候不需要联网了,因为版本都在自己电脑上。**协同的方法是这样的:比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。Git可以直接看到更新了哪些代码和文件

★Git下载与配置

去npmmirror 中国镜像站下载 很快

https://npmmirror.com/ 找到Git相关

下载windows64位.exe即可

之后安装即可

下载后有这三个

Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多,直接用这个

Git CMD:Windows风格的命令行

Git GUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令

配置

主要改一个地方 :设置user email

在任一地方右键:会出现Git Bash here 和 Git GUI here 选择Git Bash here即可!

查看 git config -l
在这里插入图片描述

查看不同级别的配置文件:

git config --system --list		#查看系统级别配置文件
git config --global --list      #查看当前配置文件

★配置用户名和邮箱

使用命令:

git config name "cangjian"       #设置自己的用户名
git config email 471228501@qq.com		#设置自己的邮箱  最好填自己真实的   后面可能会用到

设置之后在C:\Users\Administrator 会看到一个.gitconfig文件

打开 看到刚才设置的信息 说明设置成功!

然后再查看一下:

在这里插入图片描述

环境配置成功!

★Git命令

和Linux的命令很多都可以重复使用!

比如说 cd ls pwd touch rm mkdir rmdir clear等

★三个重要命令!

git add .                  #添加所有文件到暂存区
git commit -m "消息内容"    #提交暂存区中的内容到本地仓库 -m 提交信息
git push                   #同步到远程仓库

为啥子有这三个命令嘞?

这就得说起Git的基本理论了!

★基本理论!

Git 有四个区域:

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

现在就要用到上面的三个指令了!

在这里插入图片描述

Git工作流程

1、在工作目录中添加、修改文件;

2、将需要进行版本管理的文件放入暂存区域;

3、将暂存区域的文件提交到git仓库。

因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

即上图加上状态。

仓库搭建

1.本地搭建 在当前文件夹创建

git init

执行后当前文件夹会多一个.git 文件 如果隐藏则没有显示

要在显示那里把显示隐藏选项勾上!

2.在远程服务器上clone!

执行命令:

# 克隆一个项目和它的整个代码历史(版本信息)
$ git clone [url]  # https://gitee.com/kuangstudy/openclass.git

这个url是从哪里来嘞?

去Gitee找,要哪个拿哪个!
在这里插入图片描述

复制等待执行完毕即可!

在这里插入图片描述

当前目录出现:

在这里插入图片描述

搭建成功!

文件四种状态

版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。

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

查看文件状态

上面说文件有4种状态,通过如下命令可以查看到文件的状态:

#查看指定文件状态
git status [filename]
 
#查看所有文件状态
git status
 
# git add .                  添加所有文件到暂存区
# git commit -m "消息内容"    提交暂存区中的内容到本地仓库 -m 提交信息

在这里插入图片描述

忽略文件

一般在idea中使用,小伙伴们创建一个新springboot项目,是不是会先删除一些不要的文件,其中有一个是**.gitignore**,这个就是我们的Git忽略文件!

忽略文件有啥子作用嘞?

顾名思义,在进行上传的时候忽略一些不必要的文件,如生成的.class文件,target文件,.idea文件等,都可以通过忽略文件来忽略它们的上传!

忽略文件规则

在主目录下建立".gitignore"文件,忽略文件规则

  1. 忽略文件中的空行或以井号(#)开始的行将会被忽略。

  2. 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,…})代表可选的字符串等。

  3. 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略

  4. 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。

  5. 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)

#为注释
*.txt        #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
!lib.txt     #但lib.txt除外
/temp        #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/       #忽略build/目录下的所有文件
doc/*.txt    #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

这些东西都比较固定,可以自行在网上查找适合自己的!

使用Gitee

在找工作,套用模板的时候,上Gitee找资源是非常有必要的,所以学习一波。

  1. 注册登录码云

2、设置本机绑定SSH公钥,实现免密码登录!(免密码登录,这一步挺重要的,码云是远程仓库,我们是平时工作在本地仓库!)

# 进入 C:\Users\Administrator\.ssh 目录
# 生成公钥
ssh-keygen

在任意文件夹执行该命令,一路回车就会自动在C:\Users\Administrator生成.ssh文件!

在这里插入图片描述

打开这个文件夹,复制里面的id_rsa.pub内容!

在这里插入图片描述

在这里插入图片描述

在Gitee中添加公钥:
在这里插入图片描述

OK!

★IDEA集成Git

1.首先创建一个普通的springboot项目

在这里插入图片描述

2.将git工程中的文件夹直接拷贝到java文件夹中 (git工程即之前从Gitee中下载的项目)

在这里插入图片描述

加进去之后发现变色了!红色代表是选中状态,绿色代表提交状态!
在这里插入图片描述

3.之后就直接在这里使用命令操作! 执行git add . 后上面的红色就会变成绿色

在这里插入图片描述

4.然后提交

在这里插入图片描述

添加描述 commit即可

5.这个时候还没push , 所以Gitee仓库中刷新不到 ,我们需要push一下

在这里插入图片描述

看一下远程仓库:

在这里插入图片描述

提交成功~

如果修改了代码 重新来一遍操作就行

git add .

git commit -m “filename.java”

git push

OK!

Git分支

# 列出所有本地分支
git branch
 
 
# 列出所有远程分支
git branch -r
 
 
# 新建一个分支,但依然停留在当前分支
git branch [branch-name]
 
 
# 新建一个分支,并切换到该分支
git checkout -b [branch]
 
 
# 合并指定分支到当前分支
$ git merge [branch]
 
 
# 删除分支
$ git branch -d [branch-name]
 
 
# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

如果同一个文件在合并分支时都被修改了则会引起冲突:解决的办法是我们可以修改冲突文件后重新提交!选择要保留他的代码还是你的代码!

master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。

Git搞定!狂神牛逼!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值