版本控制工具---git

什么是版本控制

版本控制(Revision control)帮助我们在开发的过程实现跨区域多人协同开发、追踪记录项目的历史提交记录、对项目进行托管、统计工作量、记录软件的整个开发过程等。

常见的版本控制工具

  • git
  • svn
  • cvs
  • vss
  • tfs
  • Visual Studio Online

集中版本控制 SVN CVS

所有的版本数据都保存在服务器上,协同开发者从服务器获取数据或上传自己修改的数据。
缺点:

  • 如果不联网用户就无法工作
  • 所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据。

在这里插入图片描述

分布式版本控制 Git

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

  • 每个人都拥有全部的代码!安全隐患!
  • 增加了本地存储空间的占用。

优点:

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

在这里插入图片描述

Git与SVN的主要区别(重点)

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

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

Git是目前世界上最先进的分布式版本控制系统。

git的安装及环境配置

傻瓜式安装…

启动git

  • Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多
  • Git CMD:Windows风格的命令行
  • Git GUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令

git配置

查看配置 git config -l
在这里插入图片描述查看系统配置 git config --system --list
在这里插入图片描述查看当前用户(global)配置 git config --global --list
在这里插入图片描述

Git相关的配置文件

  • Git\etc\gitconfig :Git 安装目录下的 gitconfig --system 系统级
  • C:\Users\Administrator\ .gitconfig 只适用于当前登录用户的配置 --global 全局
    在这里插入图片描述

这里可以直接编辑配置文件或者通过命令设置后也会响应到这里。

设置用户名与邮箱(用户标识,必要)

当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中:

git config --global user.name "coiggahou"              //绿色部分为GitHub用户名
git config --global user.email [email protected]   //这里用GitHub的注册邮箱

Git的工作原理

在这里插入图片描述

  • 工作区:就是平时存放代码的地方,比如:idea project里面的某个项目等
  • 暂缓区:暂时存放数据的区域,事实上是一个文件
  • 版本库:.git目录下就是版本库
  • 远程仓库:托管代码的服务器,比如:github、gitee等
    在这里插入图片描述

本地仓库搭建

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

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

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

远程仓库克隆

去 gitee 或者 github 上克隆一个测试!

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

执行后可以看到,多出来一个克隆项目的目录,关于版本等的所有信息都在这个目录里面。
在这里插入图片描述

git常用命令

git init              #创建本地仓库
git status            #查看文件状态 
git add .             #将文件提交到暂缓区中 
git commit -m "注释如:first commit"   #文件提交到版本库
git push origin dev      #提交到远程仓库dev分支
git pull origin dev      #将远程仓库dev分支拉取到本地仓库
git remote add origin https://github.com/yourName/repositoryname.git     #连接到远程仓库
git push origin dev -f   #强制推送
git log    #查看提交日志

在这里插入图片描述

忽略文件

*.txt    #忽略.txt结尾的文件
!lib.txt   #忽略除开lib.txt之外的文件
/temp    #忽略temp 目录上的文件
temp/   #忽略temp目录下的文件
doc/*.txt    #忽略doc目录下的txt结尾的文件


使用码云

1.注册登录码云,完善个人信息
2.设置本机绑定SSH公钥,实现免密码登录!

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

在这里插入图片描述3.将公钥信息public key 添加到码云账户中即可!
在这里插入图片描述4.使用码云创建一个自己的仓库!

idea中集成git

1.idea中设置git.exe安装路径
在这里插入图片描述2.本地库的初始化
在这里插入图片描述本地库初始化结束。
在这里插入图片描述3.将文件提交到暂存区
在这里插入图片描述4.将文件提交到版本库
在这里插入图片描述

git分支常用命令

git branch       	  #查看本地仓库所有分支
git branch -r   	  #查看远程仓库所有分支
git branch dev        #新建一个分支
git checkout dev      #切换到指定分支
git merge dev         #将指定分支dev与当前分支合并
git checkout -b dev    #新建一个分支并切换到该分支
git branch -d dev      #删除指定分支
git push origin :dev   #删除远程仓库指定分支

在git pull origin dev可能会产生冲突?

远程仓库的b.txt文件被修改了,本地仓库也修改了同一个文件并且提交到远程,就会出现冲突。
在这里插入图片描述在这里插入图片描述

那么如何解决冲突呢?

我们打开b.txt,并且重新修改了该文件之后,重新提交即可
在这里插入图片描述当然了,同样的道理,在merge的时候,遇到冲突,我们还是同样的解决办法。

git reset --hard 和 --soft 的区别是啥?(重点掌握)

通过git log可以查看当前分支的提交记录。当我们想回退到某个版本的时候,可以采用git reset命令,之后通过git push origin dev -f 命令来强制将当前分支push到远程仓库。

  • –hard 通过回退head到指定版本,指定版本之前的版本会丢失,包括工作区和暂缓区。

HEAD指向了我们最新的一个版本号,这个时候,我们突然发现版本3和版本4有问题,需要回退到版本2上,那么我们可以执行git reset --hard 版本号2,执行结束之后效果的示意图如下所示:
在这里插入图片描述在这里插入图片描述

  • –soft 通过回退head到指定版本,指定版本之前的版本放到暂缓区中不会丢失,经常用来合并多个commit_id。

reset之后,我们可以看到最新的两个版本不存在了,当前HEAD处于新的版本号上。
如果,我们现在又后悔了,想要reset回去,那么通过git reflog可以查看所有的版本号(包括刚刚干掉的版本号,保证git保存的数据不会丢失,然后再次reset即可回去。如下所示:
在这里插入图片描述

git reset 和 git revert 的区别是啥?(掌握)

git reset是通过回退HEAD来完成版本回退。git revert是生成了一次新的提交,新的提交和你想去掉的那次提交的内容刚好相反,本质上是一次新的提交,也就是HEAD继续向前进。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44421869/article/details/114133607