Git——开源的分布式版本管理系统

关于Git——开源的分布式版本管理系统

简介

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

应用场景

版本控制

针对工程中的不同版本进行管理。

分支管理

针对工程中的不同分支进行管理和合并

代码项目管理

可以将仓库放在服务器,这里的服务器可以是自己搭建的服务器或者github,gitlab等开发的平台进行托管。

集中式和分布式(SVN VS Git)

集中式

集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。
在这里插入图片描述

缺点
  • 受限于互联网或者局域网
  • 对中央的安全性和可靠性要求高
  • 不能脱离中央服务器单独工作

分布式

分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
在这里插入图片描述

优点
  • 不受限于互联网或物联网
  • 去中心化
  • 分支管理

Git的使用

关于工作区、暂存区和版本库

工作区

当前的工作目录,就是你所看到的文件

暂存区

Git工具提供的一个临时存放空间,一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)

版本库

Git工具提供的提交版本存放空间,存放在.git目录下

应用场景——新增文件与提交

新增文件,然后提交到仓库中,这是非常简单的操作。
例子涉及命令如下:

1.初始化仓库
git init
2.添加文件到暂存区
git add README.md
3.提交改动
git commit

应用场景——版本回滚

在实际开发过程中,难免会遇到一些bug,为了快速调试和定位,我们可以使用git的版本回滚功能。

例子涉及命令如下:

1.查看历史记录
git log
2.查看所有历史记录
git reflog
3.版本回滚(HEAD)
git reset --hard HEAD^
4.版本回滚(commit id)
git reset --hard 90871fa(commit id)

应用场景——新增分支与合并分支

有一些大型项目往往需要多人合作开发,在开过程中都是各自完成各自的任务,但是进行合并时就头疼了,会出现各种意外状况。再者,对于一些项目,我们会做一些新增功能开发,但是这些功能是没经过测试的,如果我们在已经发布的代码上做修改,会有一定的风险。因此我们需要用到git的分支管理功能。
在这里插入图片描述
例子涉及命令如下:

1.新增研发分支
git checkout -b develop
2.在develop分支上新增“新特性分支”
git checkout -b feature-upgrade
3.查看当前有哪些分支
git branch
4.添加文件
git add .
5.提交
git commit
6.切换到develop分支
git checkout develop
7.将最近特性合并到当前分支
git merge feature-upgrade
8.删除分支
git branch -d feature-upgrade

应用场景——GitHub创建远程仓库

在实际应用中会把本地的仓库上传到服务器,可用作备份,可用作共同开发,当然也可用于分享。下面主要介绍一下如何把在github上创建远程仓库,并发本地仓库同步到远程仓库。
例子涉及命令如下:

1.将远程仓库地址添加到本地仓库
git remote add origin https://github.com/YuHuaYoung/1th
2.将本地内容推送到远程仓库
git push origin master -f

应用场景——文件暂存和恢复

我们实际工作中,在进行文件修改时,在调试阶段需要对文件进行撤销,备份等操作。利用Git我们可以把文件存放在暂存区,进行文件比较,文件回滚等操作。
例子涉及命令如下:

1.将当前所有修改保存在暂存区
git stash
2.查看当前有哪些储存
git stash list
3.查看存储的具体改动
git stash show
4.将存储的内容恢复到工作区
git stash apply
5.将存储的内容恢复到工作区并删除该存储内容
git stash pop
6.删除指定储存内容
git stash drop stash@{$num}
7.清空所有存储内容
git stash clear

Git Gui的使用

git的操作是通过命令行实现的,对于不熟系命令行的同学来说,通过图形界面的客户端更加方便。我可以通过安装Git for Windows或者GitHub Desktop来进行一些简单的操作。

创建一个空的仓库

在这里插入图片描述

添加文件到仓库

将新增文件等添加到仓库(stage区)
在这里插入图片描述

提交到版本库

将修改内容提交到版本库
在这里插入图片描述

查看历史提交记录

在这里插入图片描述
在这里插入图片描述

克隆远程仓库

从服务器如github,将远程仓库克隆到本地
在这里插入图片描述
在这里插入图片描述

推送到远程仓库

将本地的修改推送到远程仓库
在这里插入图片描述
在这里插入图片描述

同步远程仓库

将远程仓库的最新修改内容同步到本地仓库
[外链图片转存失败(img-sBGOU7hu-1563852050803)(images/同步远程仓库.png)]

新建分支

新建分支是指在原有分支中新建出跟原来分支一模一样内容的分支,分支命令有使用者决定
在这里插入图片描述
在这里插入图片描述

合并分支

合并分支需要切换到你要“合并到”的分支,再将选择需要合并的分支
在这里插入图片描述
在这里插入图片描述

配置Beyond Compare作为Git的比较工具

在开发过程中,我们需要对不同版本中的源文件进行比较。使用git时,我们除了使用原生的比较工具git diff进行比较之外,还可以使用第三方工具,如我们比较常用的Beyond Compare工具进行比较。而且还可以帮我解决分支合并的一些问题。

1.设置合并工具
git config --global merge.tool bc3 
2.设置合并工具路径
git config --global mergetool.bc3.path "D:\\Program Files\\Beyond Compare 4\\BCompare.exe"
3.设置比较工具
git config --global diff.tool bc3 
4.设置比较工具路径
git config --global difftool.bc3.path "D:\\Program Files\\Beyond Compare 4\\BCompare.exe"

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值