Git版本控制使用

Git 版本控制 (一)

image

一、什么是 版本控制

版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。

  • 实现跨区域多人协同开发
  • 追踪和记载一个或者多个文件的历史记录
  • 组织和保护你的源代码和文档
  • 并行开发、提高开发效率
  • 跟踪记录整个软件的开发过程
    等等

简单说就是用于管理多人协同开发项目的技术。

1.常用的版本控制

目前影响力最大和适用范围最广的主流的版本控制:

  • Git
  • SVN(Subversion)

而这两种也代表着不同的类型的版本控制,集中版本控制分布式版本控制

1.1 SVN

属于集中版本控制,即所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。

此处输入图片的描述

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

1.2 Git

属于分布式版本控制。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o8LleL7T-1592805568838)(AD9E450C5A4E41D6BA7C95D6A804DE3A)]

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

1.3 Git与SVN最主要区别

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

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

二、Git安装与配置

1.什么是Git

1.1

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

优点:

  • 适合分布式开发,强调个体。
  • 公共服务器压力和数据量都不会太大。
  • 速度快、灵活。
  • 任意两个开发者之间可以很容易的解决冲突。
  • 离线工作。

缺点:

  • 模式上比SVN更加复杂。
  • 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

2.搭建Git工作环境

2.1 下载安装Git

Git 官网

下载完成后,一步步安装即可

2.2 启动Git

右键鼠标会有Git选项

在这里插入图片描述

Git Bash Here
Unix与Linux风格的命令行,使用最多,推荐最多

Git GUI Here
是Git自带的图形化工具,可以直观的操作Git

在这里插入图片描述

2.3 Git配置

  • 查看Git版本

git version

如上图,可知我下载的Git版本为:2.26.2

  • 查看配置

git config -l

在这里插入图片描述

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

查看系统config

git config --system --list

查看当前用户(global)配置

git config --global --list

查看当前仓库配置信息

git config --local --list

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

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

git config --global user.name “name”

git config --global user.email xxxx@163.com

查看配置的用户名称和e-mail

git config --global user.name

git config --global user.email

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QzpIQT7h-1592805568846)(7DC7E5C8698240808D214C03E8B1BEBA)]

只需要做一次这个设置,如果你传递了–global 选项,因为Git将总是会使用该信息来处理你在系统中所做的一切操作。如果你希望在一个特定的项目中使用不同的名称或e-mail地址,你可以在该项目中运行该命令而不要–global选项。 总之–global为全局配置,不加为某个项目的特定配置。

现在我查看下公司项目clone下来的项目,在项目所在的目录中,右键打开 Git Bash Here,可以看到

用户名和邮箱都是刚才的全局配置

在这里插入图片描述

如果想单独为某个项目配置单独的用户名和邮箱 ,只需将 –global 去掉即可

git config user.name “xx”

git config user.email xxxx@163.com

在这里插入图片描述

2.3.2 创建全新的仓库
2.3.2.1 本地新建仓库

需要用GIT管理的项目的根目录执行:

git init

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qaMrwO7T-1592805568848)(76D284828E8247FF944D0D44DC4FE71E)]

同时,该项目的根目录会多出一个 .git 文件夹(该文件夹是隐藏文件夹)
在这里插入图片描述
关于版本等的所有信息都在这个目录里面。

2.3.2.2 克隆远程仓库

克隆远程目录,是将远程服务器上的仓库完全镜像一份至本地

git clone [url]

比如我们要从克隆的远程仓库托管在github上,地址为:https://github.com/PuppetZ/Utils.git
,这是一个公开的项目
在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xfqjj1bQ-1592805568850)(EDF155D8AB944496ABA4ECAD1445E635)]

在这里插入图片描述

2.3.2.3 将本地新建的仓库上传到GitHub
2.3.2.3.1 查看本地仓库 文件状态

git status

在这里插入图片描述

可以看到这些文件成红色,表明这些文件还没有提交到暂存区中,提交单个文件的命令

git add [文件名]

如果需要将当前目录的所有文件到暂存区

git add .

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xd1cCpgA-1592805568852)(4CA0831886024B20B5C788A77607723D)]

图中的警告是指

由于Linux中的换行符是LF,而Windows中的换行符是CRLF,如果想用Windows下的git管理来自Linux的文本文件,git会默认将LF转换成CRLF,并发出烦人的warning。

我们这里无需理会。如果无法添加文件,我们可以禁止Git自动转换

git config --global core.autocrlf false

再次查看文件状态 git status

在这里插入图片描述

文件全部变为了绿色,表明文件以及提交到暂存区。接下来我们需要把文件提交到本地仓库

git commit -m “提交日志”

在这里插入图片描述
查看下文件状态
在这里插入图片描述
工作树是干净的,全部已经提交。

2.3.2.3.2 GitHub新建远程仓库,项目提交到远程仓库

GitHub上新建远程仓库。(GitLab、公司服务器新建远程仓库类似)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8bGrwSs1-1592805568855)(2F4404B181AD480B9540C4058D4979D4)]

本地仓库关联远程仓库

git remote add origin [远程仓库url]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LkJwgNAP-1592805568856)(8CEAB1946F3945679ED2FB6EB5325A47)]

本地仓库提交到远程仓库

git push -u origin master

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9XbNJaTs-1592805568857)(49E3066271D64BC0AE27904A79D5D5DF)]
提交的时候需要登录Github。一般我们默认将项目的git用户名和邮箱配置程Github用户名/邮箱。(GitLab同理)

如果公司自己搭建服务器,建议将项目的git用户名和邮箱配置成分配我们的公司服务器的账号和邮箱。

如图,即上传远程仓库成功
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-omPC4rcx-1592805568858)(73916FB4D0F14E6B8AB86463D69B90DC)]

查看GitHub,也可以看出项目上传到远程仓库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UMQIDwT8-1592805568859)(098967F6D5AA4240B3A83AE22D15300E)]

这样我们可以将本地项目上传到Github/GitLab/公司服务器搭建的远程仓库。

2.4 IDE中使用Git

我们除了使用命令行可以进行Git操作,我们还可以在IDE中使用Git进行操作。

目前Android 开发主流工具为Android studio,后台开发中使用IntelliJ IDEA的较多。其实Android studio 是IntelliJ IDEA社区版上剔除其他功能的一款专注Android开发的插件,可以说是弱化版的IntelliJ IDEA。

我们都可以在其中进行Git版本控制

2.4.1 配置Git

右上角

File --Settings – Version Control --Git

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l96WMjMa-1592805568859)(74F1DDE146A54548B9B75996B4D5F383)]

IDE会默认检测电脑中安装的Git,我们可以点击 Test
检测是否配置Git成功,Git配置成功会显示电脑安装Git版本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ABQwbABx-1592805568860)(8091746C849A44E0B39FB38F68B03D11)]

2.4.1 本地项目初始化本地仓库

如果我们需要将本地项目添加到Git本地仓库
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8TSkL3vJ-1592805568861)(00CA0E19929A42B9B7AE6B5CBBF70748)]

初始化本地仓库成功后,你会发现项目中的代码全部变为了红色,表明代码还没加入到缓存区,也就是还没有执行命令行中的

git add

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WStLlgta-1592805568862)(8FCE6E08968C44DB98A010BDDF7C6224)]

我们接下来直接 add 即可。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UaPZ4KQm-1592805568862)(E22C188CDE514DF9BA33BA5759A93ECB)]

项目添加到缓存区后,代码颜色变为了绿色。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pnwxISgN-1592805568863)(200F568CD9034A20823A438B3160617F)]

接下来执行 commit ,会将缓存区中的代码上传到本地仓库
等同于命令行中的

git commit

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XOtf0qJ8-1592805568864)(F5831768A73E450D8DEFFA820D9219D9)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gQs3XCGY-1592805568864)(06FE16B103F947568A52064899828E2C)]

执行 commit 时,我们需要添加 commit message
等同于命令行

git commit -m [commit message]

图中下方会显示每个文件提交时,改变的代码。

提交时,IDE会自动给你检测你的代码中有多少错误和警告,你可以选在修改之后再进行提交

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AMlOnYsK-1592805568865)(C46DEC01D94F4D5F9531E77322521976)]

提交成功后,你会发现代码颜色变成了默认的白色

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AVMUa1kV-1592805568866)(1841A5CFB8FA4B5CA70B3A7BEF9F0FE2)]

如果我们对某个文件进行了修改,目录中的文件颜色会变为蓝色

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wA6dYL4A-1592805568866)(FA324602D2A841B280C3768FE6F9F59F)]

修改完成之后,我们在执行之前的操作提交操作即可。

保证本地代码都已提交到本地仓库后,我们可以推送到远程仓库。先关联远程仓库,如同命令行

git remote add origin [远程仓库url]

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5eZlnhyA-1592805568867)(5AB607FB398E496DB80194C93F3726E9)]

代码推送到远程仓库

git push -u origin master

在这里插入图片描述

这样我们本地项目就会推送到GitHub/GitLab/公司服务器的远程仓库。

2.4.2 远程仓库 clone 项目

我们需要从远程仓库 clone 到本地项目,也可直接在IDE中操作。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-frBaBXng-1592805568868)(8A4C903AAD4145A78BA69541D652EC71)]

填入远程仓库url和 clone 到本地的目录文件夹即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2gh08tRv-1592805568870)(5E3CB09FE4084121ACE3C51BD342052D)]


以上就是我们使用Git进行项目的版本控制的两种方法,我个人认为在IDE中操作,是一种图形化的操作,可以给人更加直观的感受,也更加简便。不过也会有人认为使用命令行操作更加的高大上,专业。无论使用哪种方式都是为了我们更好的进行版本控制,那种简单便捷使用哪种,毕竟使用Git是为了让我们开发效率更高。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值