Git、gitee -从入门到使用(综合)

版本控制

遇到问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qgg3tA0k-1652275543294)(springboot.assets/image-20220511104909022.png)]

多人开发就必须要使用版本控制,否则代价非常大

版本控制工具

常见的版本控制工具

  • Git
  • SVN(Subversion)
  • CVS(Concurrent Versions System)
  • VSS(Micorosoft Visual SourceSafe)
  • TFS(Team Foundation Server)
  • Visula Studio Online

版本控制产品非常的多( Perforce、Rational ClearCase、RCS ( GNU Revision Control System ) . Serena Dimetion、SVK.BitKeeper、Monotone、Bazaar、Mercurial、SourceGear Vault ),现在影响力最大且使用最广泛的是Git与SVN

版本控制分类

本地版本控制

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1ZTxHgqF-1652275543295)(springboot.assets/image-20220511110147823.png)]

集中版本控制(SVN)

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qWeg7Jso-1652275543296)(springboot.assets/image-20220511110246257.png)]

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

分布式版本控制(Git)

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

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

所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fg1PjHNZ-1652275543296)(springboot.assets/image-20220511110759705.png)]

Git与SVN最主要区别

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

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

Git历史

历史

同生活中的许多伟大事物一样,Git诞生于一个极富纷争大举创新的年代。
Linux内核开源项目有着为数众广的参与者。绝大多数的Linux内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到2002年,整个项目组开始启用一个专有的分布式版本控制系统BitKeeper来管理和维护代码.Linux社区中存在很多的大佬!破解研究BitKeeper !
到了2005年,开发BitKeeper的商业公司同Linux内核开源社区的合作关系结束,他们收回了Linux内核社区免费使用BitKeeper的权力。这就迫使Linux开源社区(特别是Linux的缔造者Linus Torvalds)基于使用BitKeeper时的经验教训,开发出自己的版本系统。(2周左右!)也就是后来的Git !

作者

Git是免费、开源的,最初Git是为辅助Linux内核开发的,来替代BitKeeper !

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CCkuADTd-1652275543296)(springboot.assets/image-20220511111938373.png)]

Linux和Git之父李纳斯·托沃兹(Linus Benedic Torvalds ) 1969、芬兰

Git环境配置

Git下载安装

Git (git-scm.com)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sY0DUfM9-1652275543297)(springboot.assets/image-20220511112207132.png)]

镜像下载

所有东西下载慢的话就可以去找镜像!

官网下载太慢,我们可以使用淘宝镜像下载:

CNPM Binaries Mirror (npmmirror.com)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nN6QUDvY-1652275543298)(springboot.assets/image-20220511112438697.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vhZ3RSbr-1652275543299)(springboot.assets/image-20220511112553267.png)]

卸载

清理环境变量,删除

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W5QbaTcJ-1652275543300)(springboot.assets/image-20220511115119191.png)]

安装

无脑下一步,不再简述,英语好的可以稍微看一下

启动git

Git安装路径

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g1oAqnry-1652275543301)(springboot.assets/image-20220511115612052.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dgmkJk8r-1652275543302)(springboot.assets/image-20220511115626580.png)]

任意文件夹下右键

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x1hon4rG-1652275543303)(springboot.assets/image-20220511115458852.png)]

推荐使用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8zG7igeG-1652275543303)(springboot.assets/image-20220511115858472.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-des2Zz9o-1652275543304)(springboot.assets/image-20220511115918445.png)]

基本的Linux命令学习

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZZJTNWsP-1652275543305)(springboot.assets/image-20220511120250706.png)]

稍微演示一下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1hMa5GKG-1652275543305)(springboot.assets/image-20220511121134196.png)]

演示移动文件到test目录中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ld1LdQyj-1652275543306)(springboot.assets/image-20220511122129121.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DUtG8NNH-1652275543306)(springboot.assets/image-20220511122142799.png)]

注意

linux环境下删除所有文件

rm -rf /*

Git必要配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YzEwnyKg-1652275543307)(springboot.assets/image-20220511185157008.png)]

  • 配置user.name

    -git config --global user.name “taotao”

  • global代表全局控制权限,对应的system或local

  • 展示用户配置信息列表

    -git config --global --list

  • 查看配置

    git config -l

  • 设置用户和邮箱,必要的

  • 查看系统config

    git config --system --list

  • 查看当前用户(global)配置

    git config --global --list

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dNKOywqM-1652275543307)(springboot.assets/image-20220511152422814.png)]

Git相关配置文件

Git\mingw64\etc\gitconfig

Git安装目录下的gitconfig --system系统级

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZLUNVOki-1652275543308)(springboot.assets/image-20220511192226127.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mBHSR8qr-1652275543308)(springboot.assets/image-20220511192306889.png)]

C:\Users\Administrator.gitconfig

只适用于当前登录用户的配置,–global全局,这里可以直接编辑配置文件,通过命令设置后影响到这里

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OdD2W68Q-1652275543309)(springboot.assets/image-20220511184904237.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6WBNYUTo-1652275543309)(springboot.assets/image-20220511184916616.png)]

Git基本理论(核心)

所有的实践都要源于这个理论

工作区域

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-csMaHeU6-1652275543309)(springboot.assets/image-20220511185817515.png)]

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

工作流程

git的工作流程一般是这样的:
1、在工作目录中添加、修改文件

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

3、将暂存区域的文件提交到git仓库。
因此,git管理的文件有三种状态︰已修改( modified ) ,已暂存(staged ) ,已提交(committed)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xKy0Shca-1652275543310)(springboot.assets/image-20220511191508256.png)]

Git项目搭建

创建工作目录与常用指令

工作目录(WorkSpace)一般就是你希望Git帮助你管理的文件夹,可以是你项目的目录,也可以是一个空目录,建议不要有中文。日常使用只要记住下图6个命令︰

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6JVE818e-1652275543310)(springboot.assets/image-20220511191640452.png)]

本地仓库搭建

创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库。

1、创建全新的仓库,需要用GIT管理的项目的根目录执行︰

#在当前目录新建一个Git代码库

$ git init

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0L9COqlZ-1652275543310)(springboot.assets/image-20220511192433032.png)]

2、执行后可以看到,仅仅在项目目录多出了一个.git目录,关于版本等的所有信息都在这个目录里面。

**加粗样式**[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UYz8Colj-1652275543311)(springboot.assets/image-20220511192408014.png)]

克隆远程仓库

1、另一种方式是克隆远程目录,由于是将远程服务器上的仓库完全镜像一份至本地!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fxlq0CRV-1652275543311)(springboot.assets/image-20220511193139995.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d5buWIns-1652275543312)(springboot.assets/image-20220511193351287.png)]

克隆一个项目和他整个代码历史(版本信息)

$git clone https://gitee.com/dtstack_dev_0/taier.git

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H3QJzB1d-1652275543312)(springboot.assets/image-20220511193643055.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QodbEeVD-1652275543313)(springboot.assets/image-20220511193657859.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mwHrJbPN-1652275543313)(springboot.assets/image-20220511194201402.png)]

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

查看文件状态

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

#查看指定文件状态

git status [filename]

#查看所有文件状态

git status

模拟案例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nngNWeIl-1652275543313)(springboot.assets/image-20220511194741573.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AvSpSU7n-1652275543314)(springboot.assets/image-20220511194825817.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tc6sKITT-1652275543315)(springboot.assets/image-20220511194927306.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JmSrIG2p-1652275543315)(springboot.assets/image-20220511195000795.png)]

git add .

提交到暂存区

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Cpezr6r-1652275543315)(springboot.assets/image-20220511195130694.png)]

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

git commit -m

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SPJU3K3x-1652275543316)(springboot.assets/image-20220511195353379.png)]

忽略文件

有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等

在主目录下建立".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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SFUzEeSu-1652275543316)(springboot.assets/image-20220511200020208.png)]

使用码云

github是有墙的,比较慢,在国内的话,我们一般使用gitee,公司中有时候会搭建自己的git服务器–gitlab

设置SSH公钥,免密登录

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

#生成.ssh
mkdir ~/.ssh
#进入 c:\users\Administrator\.ssh 目录
#生成密钥
ssh-keygen

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zP3Gzkw9-1652275543316)(springboot.assets/image-20220511201044048.png)]

使用官方推荐rsa加密,一路点回车就会生成两个文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KfUdeSs2-1652275543317)(springboot.assets/image-20220511202143882.png)]

记事本打开pub,公开的,复制到gitee

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JjpCQgiK-1652275543317)(springboot.assets/image-20220511202329340.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ikGejk8Z-1652275543317)(springboot.assets/image-20220511202349406.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Mcfd6Wm-1652275543318)(springboot.assets/image-20220511202500797.png)]

使用码云创建自己的仓库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RnRpkOFR-1652275543318)(springboot.assets/image-20220511202551885.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jyhztkaQ-1652275543318)(springboot.assets/image-20220511203501687.png)]

克隆自己的仓库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bjQnEvgw-1652275543319)(springboot.assets/image-20220511203743640.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hKmp663X-1652275543319)(springboot.assets/image-20220511203910234.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tVoyyqMw-1652275543319)(springboot.assets/image-20220511204033352.png)]

成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sfdjUNP4-1652275543320)(springboot.assets/image-20220511204127358.png)]

IDEA中集成Git

新建项目,绑定git。

Spring - boot 项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EABWzbeh-1652275543320)(springboot.assets/image-20220511204534504.png)]![

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r0hgv64E-1652275543320)(springboot.assets/image-20220511204553755.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hv6GyAJE-1652275543321)(springboot.assets/image-20220511204754141.png)]

绑定Git

将我们远程的git文件目录拷贝到项目中即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IXVZTOm8-1652275543321)(springboot.assets/image-20220511205136495.png)]

复制到git-学习

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HWDnpfS4-1652275543322)(springboot.assets/image-20220511205230132.png)]

打开idea

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NZZGt2jQ-1652275543322)(springboot.assets/image-20220511205358746.png)]

修改文件,使用IDEA操作git。

提交测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GEJfczFj-1652275543322)(springboot.assets/image-20220511211848509.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-msfYDHMF-1652275543323)(springboot.assets/image-20220511211859824.png)]

Git分支

多个分支如果并行执行,就会导致我们代码不冲突,也就是同时存在多个版本!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-91SiRnnW-1652361430832)(springboot.assets/image-20220512083551377.png)]

检查当前分支

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6sI1HZyv-1652361430833)(springboot.assets/image-20220512083738270.png)]

新建分支

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Rz9fS3G-1652361430834)(springboot.assets/image-20220512095845868.png)]

分支

#列出所有分支

git branch

#列出所有的远程分支

git branch -r

#新建一个分支,但依然停留在当前分支

git branch [branch-name]

#合并指定分支到当前分支

git merge [branch]

#删除远程分支

git push origin --delete [branch-name]

git branch -dr [remote/branch]

Git命令学习(游戏)

gitee - Git命令学习

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VWON1Nys-1652361430834)(springboot.assets/image-20220512092423309.png)]

猜你喜欢

转载自blog.csdn.net/qq_39123467/article/details/124719424
今日推荐