Git 分布式版本控制系统使用详解

一、引言

  •  在单人开发过程中,需要进行版本控制,以利于开发进度的控制
  • 在多人开发过程中,不仅需要进行版本管理,还需要进行多人协同控制

二、介绍

  • Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目
  • Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件
  • Git可以使用本地创建仓库与网络仓库,解决了集中管理型版本控制软件存在的一些问题(例如:SVN)。
  • 官网:Git

三、Git安装

3.1 下载Git

下载Git:Git - Downloads

 3.2 安装

安装,除了安装位置外,其他一直下一步即可

安装完成后,在任意的文件目录下,右键都可以打开Git的命令行窗口。

3.3 基本配置

Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识,--global表示全局属性,所有的git项目都会共用属性

配置用户名

$ git config --global user.name "xiaokh0707"

配置邮箱

$ git config --global user.email "653807260@qq.com"
 

 此时就可以在C:\Users\Administrator.gitconfig文件可以查看到我们的配置信息。

 四、工作区、暂存区、版本库

  • 工作区(Working Directory):电脑上的本地硬盘目录,平时存放项目代码的地方
  • 暂存区(Statge):用于临时存放的你的改动,事实上它只是一个文件,保存即将提交到文件列表信息,一般存放在"git目录"下的index文件(.get/index)中,所以我们把暂存区有时也叫作索引(index)
  • 版本库(Repository):工作区有个隐藏目录.get,它就是Git的本地仓库。

存储顺序:工作区--->>暂存区---->>版本库

 五、基本操作

git的工作流程:

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

2、将需要进行版本控制文件放入暂存区域;

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

使用步骤:(首先设置电脑可以查看隐藏文件)

1.在任意位置创建空文件夹,作为项目目录,例如:在D盘右键创建git-repository文件夹

2.在项目文件夹内右键打开git bash窗口,输入命令:git init

此时git_repositroy目录下会生成一个隐藏的.get目录

3.在空白位置,右键新建一个文件,例如a.txt

 4.输入命令:git add 文件名,此时是将文件添加到暂存区当中

 5.输入命令:git status ,查看暂存区状态

 6.如需删除,可以输入命令:git rm --cached 文件名 ,此时是从暂存区中删除了,工作目录中还会存在该文件,删除以后再次查看,该文件名颜色已经发生改变

 7.(不推荐)如需提交文件到本地仓库,输入命令:git commit,提交完成后,会提示在文件中写一些备注(可写可不写),如需写可以使用i/a/o编辑文本(和Linux命令一样),然后保存并退出

推荐:使用git commit -m "注释内容",直接带注释提交

 8.输入命令:git log 查看所有历史记录,输入命令:git log 文件名,查看该文件的历史记录

 9.输入命令:git log --pretty=oneline 查看文件历史记录简易信息,输入命令:git log --pretty=oneline 文件名 查看该文件历史记录简易信息

 10.(不推荐使用)输入命令:git reset --hard HEAD^ ,回退到上一次提交

输入命令:git reset --hard HEAD-n ,回退到n次操作

先修改一下a.txt文件,往里面添加内容,再提交

 11.输入命令:git reflog 文件名,查看文件历史记录的版本号

输入命令:git reset --hard 版本号,跳转到该版本时候的状态

 12.手动删除工作目录中的文件,然后输入命令:git checkout 文件名,可以恢复目录中已经删除的文件

 13.手动删除工作目录中的文件,然后输入命令:git add 文件名(此时该命令表示提交删除文件的操作)

然后输入命令:git commit -m "删除文件" (此时才是真正删除了该文件,但是此次删除只是这一次操作的版本号没有了,其他的都可以恢复)

恢复文件某个版本,可指定之前的版本号

5. 分支的相关操作

创建分支

输入命令:git branch <分支名>

输入命令:git branch -v,查看分支

 切换分支

输入命令:git checkout <分支名>

 

 切换到分支后,在分支下的操作,master(主线)不会有任何变化

 此时可以在工作目录下可以看到c.txt文件,但是当切换到master时,再去查看工作目录已经没有c.txt文件了

 切换后

 输入命令:git checkout -b <分支名> ,将创建分支,切换分支一起完成

 合并分支

输入命令:git checkout master ,切换到主干

输入命令:git merge <分支名> ,合并分支

此时在工作目录中又可以查看到c.txt文件了

 冲突问题:当主线和分支合并之后,分支和主线都会有相同的文件,此时在主线中修改该文件内容并提交,在分支中也修改该文件内容并提交,再次合并时就会出现冲突,此时文件中会显示冲突内容,我们需要手动解决再合并了。

六、远程仓库

当很多人协同开发的时候,每个人都在自己的本地仓库维护版本

但很重要的一点是,多人之间需要共享代码,合并代码,此时就需要一个远程仓库

6.1 远程仓库工厂模式

6.2 远程仓库模型

6.3 常用命令

命令描述
git remote add 标识名(master) 远程地址本地关联远程仓库
git push 标识名 master将本地仓库内容上传到远程仓库
git pull 标识名 master从远程仓库下载内容到本地仓库
git clone 远程地址将远程仓库复制到本地,并自动形成一个本地仓库

6.4 把本地代码推送到远程仓库

1.在码云上常见仓库(裸库,只创建库,不创建文件)

2.增加远程地址:git remote add <远端代号> <远程仓库地址>

 注册登录gitee,点击新建仓库

 

增加远程仓库的地址: git remote add origin https://gitee.com/xiaokh0707/test.git

 3.推送到远程仓库:git push <远端代号> <本地分支名称>

git push origin master

 本地创建目录,添加文件到本地仓库,然后推送到远程仓库

第一次连接,会让我们输入注册gitee的邮箱和密码

 

 如果输入用户名和密码不成功,需要先去控制面板把之前的密码删除,也有可能是曾经使用过码云,但密码有过改动,再次使用时会提示重新输入密码。

 推送成功

查看结果

6.5 把远程仓库中修改后的代码更新到本地

别人提交或手动跟新远程仓库中的代码

 

 更新到本地:git pull <远端代号> <远端分支名>

git pull origin master

 ​​​​​

 打开工作空间下的a.txt文件

 6.6 克隆远程仓库

如果仓库已经被别人创建完毕,则可以通过git clone 将其复制到本地,手动创建目录,在目录下执行以下命令

git clone <远端地址> <新项目目录名称>

git clone https://gitee.com/xiaokh0707/test.git

 

新建一个文件夹,右键选择Git Bash Here

 

 输入命令: git clone https://gitee.com/xiaokh0707/test.git

 

 此时,文件夹中夹就下载了代码

 七、IDEA推送项目到Gitee

7.1、关联Git

打开settings,找到Git 

 7.2 在IDEA安装Gitee插件

需要手动下载一个Gitee插件,然后导入即可

下载地址:JetBrains Marketplace

(需要翻墙,访问的是外国网站,翻墙的方法,需要的百度)

下载成功了,找到插件jar包的位置

 打开idea中的settings,找到pluigns

 

 点击ok

 7.3 登录Gitee

 7.4 第一种方式,创建项目编写代码,直接分享到Gitee并创建远程仓库

创建一个项目,点击VCS

 7.4.1 设置Gitee远程仓库的名称

 7.4.2 推送项目

 7.4.3 推送成功后在Gitee中查看

 

 7.4.4 修改内容(模拟另外一个人推送当前代码)

 

 点击最下面的提交按钮

 7.4.5 在IDEA中更新代码

选中当前项目test,右键

 

 更新完成

 7.5 第二种方式,先创建Gitee远程仓库(使用裸库)

7.5.1 创建Gitee远程仓库

7.5.2  在IDEA中创建本地git仓库(工作空间)

 7.5.3 选择要推送的项目

7.5.4 添加到暂存区

 

 7.5.5 添加到本地仓库

 7.5.6 编写注释内容,然后提交

 7.5.7 修改代码,再次add,再次commit,切换版本测试

 再次add,再次commit

 

 切换版本测试

 

 切换过后,版本就跳到了没修改代码之前

 再跳回去

 7.5.8 选择分支

 7.5.9 创建分支

 7.5.10 命名并切换分支

 7.5.11 在分支下编写代码并提交

 

 7.5.12 切换到主线

 选中master,点击,再选择checkout

 

 7.5.13 合并分支

 

 7.5.14 推送到Gitee

 

 

 

 成功之后,去远程仓库查看,记得刷新页面

 八、克隆项目以及解决分支冲突

8.1 选择从Git中检出

 8.2 选择要克隆的Gitee远程仓库以及存放的目录(提前创建好)

 

 

 8.3 克隆项目成功

 8.4 测试冲突

创建dev分支,然后创建一个类,然后合并到master主分支上,然后在master和dev分支中分别对当前类进行修改并提交到本地仓库,然后再合并,则会发生冲突,我们可以选择close,然后手动解决冲突即可。

克隆的项目创建本地仓库,并把项目提交到本地仓库。

创建dev分支,然后创建一个类,然后提交到本地仓库上

 

 

 切换到master主分支,然后合并,然后修改这个dev分支创建的类,最后提交到本地仓库中

 

 切换到dev分支,修改Dog类,然后提交到本地仓库了

 

 

 切换到主分支,然后进行合并,会发生冲突

 点击close,手动删除冲突的代码,然后提交到本地仓库

 

 九、多人协同开发

9.1 项目管理员( 项目经理 )

1、由管理员负责创建一个远程库,初始的库中什么也没有,为裸库。库的名称建议和项目同名

2、管理员将本地库上传到远程库

3、将其他开发人员拉入远程库的 开发成员列表中 ,使得其他开发人员可以访问该远程库。流程如下:

 

 

 

 

5. master分支设置为 protected分支,只有管理员有权限将代码合并到其中。dev分支设置为 常规分支所有开发人员都可以合并代码

 

 9.2 开发人员

1、初始化:在idea中clone 远程库,获得项目,会建立本地库。

2、后续的开发中,都要在dev分支上进行。开发完一个功能并测试通过后就commit 提交到本地的dev分支中,然后 上传(push)到远程dev分支中。

3、需要更新项目内容时,通过 pull 从远程仓库拉取内容。

4、注意:多人协同时,每次在 push 到远程库前,都先做一次pull,一来是把远程最新内容合并到本地,二来是核实本地内容是否和远程内容有冲突。

5、后续的开发,会接到一个个的功能任务,往复操作 2>、3>、4> 而已

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小yu别错过

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值