Git版本控制使用

Git 版本控制 (一)

Git版本控制使用

一、什么是 版本控制

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

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

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

1.常用的版本控制

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

  • Git
  • SVN(Subversion)

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

1.1 SVN

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

Git版本控制使用

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

1.2 Git

属于分布式版本控制。

Git版本控制使用

所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时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版本控制使用

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

Git版本控制使用

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

Git版本控制使用

2.3 Git配置

  • 查看Git版本

git version

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

  • 查看配置

git config -l

Git版本控制使用

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

查看系统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 [email protected]

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

git config --global user.name

git config --global user.email

Git版本控制使用

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

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

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

Git版本控制使用

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

git config user.name “xx”

git config user.email [email protected]

Git版本控制使用

2.3.2 创建全新的仓库

2.3.2.1 本地新建仓库

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

git init

Git版本控制使用

同时,该项目的根目录会多出一个 .git 文件夹(该文件夹是隐藏文件夹)
Git版本控制使用
关于版本等的所有信息都在这个目录里面。

2.3.2.2 克隆远程仓库

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

git clone [url]

比如我们要从克隆的远程仓库托管在github上,地址为:https://github.com/PuppetZ/Utils.git
,这是一个公开的项目
Git版本控制使用

Git版本控制使用

Git版本控制使用

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

git status

Git版本控制使用

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

git add [文件名]

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

git add .

Git版本控制使用

图中的警告是指

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

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

git config --global core.autocrlf false

再次查看文件状态 git status

Git版本控制使用

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

git commit -m “提交日志”

Git版本控制使用
查看下文件状态
Git版本控制使用
工作树是干净的,全部已经提交。

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

GitHub上新建远程仓库。(GitLab、公司服务器新建远程仓库类似)
Git版本控制使用

本地仓库关联远程仓库

git remote add origin [远程仓库url]

Git版本控制使用

本地仓库提交到远程仓库

git push -u origin master

Git版本控制使用
提交的时候需要登录Github。一般我们默认将项目的git用户名和邮箱配置程Github用户名/邮箱。(GitLab同理)

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

如图,即上传远程仓库成功
Git版本控制使用

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

Git版本控制使用

这样我们可以将本地项目上传到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

Git版本控制使用

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

Git版本控制使用

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

如果我们需要将本地项目添加到Git本地仓库
Git版本控制使用

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

git add

Git版本控制使用

我们接下来直接 add 即可。

Git版本控制使用

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

Git版本控制使用

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

git commit

Git版本控制使用

Git版本控制使用

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

git commit -m [commit message]

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

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

Git版本控制使用

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

Git版本控制使用

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

Git版本控制使用

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

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

git remote add origin [远程仓库url]

Git版本控制使用

Git版本控制使用

代码推送到远程仓库

git push -u origin master

Git版本控制使用

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

2.4.2 远程仓库 clone 项目

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

Git版本控制使用

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

Git版本控制使用


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