Git简介
Tips
Git是目前世界上最先进的分布式版本控制系统(对比集中式版本控制系统SVN),没有之一!
大家在开发项目的过程中,如果直接在本地系统上维护源码目录,经常会碰见下面的问题:
- 不小心把源代码的目录或文件删了,写了好久的代码没了!
- 按需求添加新功能,写了好多代码,但净是编译错误,改都改不完,想回到之前的版本,开始大面 积删除或者屏蔽代码,很崩溃,如果此时有个代码版本管理工具,该多好!
- 新功能添加完了,编译运行一切很顺利,功能也正常,但有时候运行会出现以前没见过的运行错 误,非必现的,想查看和之前代码的差异,看看都在哪些源文件中修改了代码,该怎么办?
- 团队开发项目,但是项目成员都不在一起,各自写的代码该如何添加到一块,还能避免错误,不会 出现谁把谁的代码给覆盖了?
Git就是这样一个代码版本管理工具,它可以帮助我们解决上面的问题,它是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
Git 是 Linus Torvalds 出品
2005年由于BitKeeper软件公司对Linux社区停止了免费使用权。 Linus迫不得己自己开发了一个分布式版本控制工具,从而Git诞生了。据说Linus花了两周时间自己用C写了一个 分布式版本控制系统,这就是Git!一个月之内, Linux系统的源码已经由Git管理了!
Git的特点
- 离线可用: (SVN不行)
- 可以回退
主流的管理工具对比: Git 80% 上; SVN 10%
- Git:分布式版本控制工具
- SVN:集中式版本控制工具 离线不可用
安装Git
Linux
正常来就那个我们在日常配置Linux其它代码开发环境的时候, 在安装某些工具的时候, 其中可能自动安装了git工具. 我们可以通过命令来确定Linux环境中是否已经具备git工具.
git --version
如果通过上述命令, 显示git的版本号, 则表明当前环境中已经具有急用git工具的能力。如果我们在通过上述命令检测的时候, 发现没有git工具:(如图)
我们可以通过命令来安装git工具:
sudo apt install git
建议在安装git之后设置一些内容
// 建议设置有效的邮箱和用户名
git config --global user.email 222@qq.com
git config --global user.name youname
// 编辑工具
git config --global core.editor vim
Windows
直接傻瓜式(一路默认, 唯一需要注意如下图)安装即可。
安装的时候,要注意 让Windows 记住登录凭证
判断是否安装成功
如果在Windows的任何路径下都可以出现如下图所示的命令选项, 既是安装成功
Git核心流程
Git的工作流程
远程仓库
常用的远程仓库: Github、Gitee、Gitlab。在不同Git仓库注册的时候,
建立远程仓库
邀请成员加入仓库
不管是开源的仓库,还是私有的仓库,都是只有仓库中的成员才能去修改仓库中的代码。
开源仓库所有人都可以访问到,私有仓库只有仓库指定的成员才能看到。
怎么在项目中组织分支
组织Git的分支体系有很多种模式: 怎么设计没有标准的定式
在公司中写代码, 一定要去问一下分支结构,合并逻辑。分支结构可以问公司前辈,也可以自己使用 git branch -a
命令查看。
忽略文件
Git在做版本控制的时候,可以让我们忽略一些文件,不去追踪这个仓库中这些文件的变化。
// 可以在Git仓库的根目录下 添加一个.gitignore这个名字的文件,可以在这个文件中声明哪些文件不被git追踪版本信息
eg:
# 单个文件
xxx.txt
# 配置文件夹
.idea
# 配置文件的类型
*.iml
target/*.class
out
注意事项
忽略文件最好是在创建仓库的时候,就应该先创建出来。一旦一个文件已经被追踪并且提交到远程仓库中去了,那么再在.gitignore
这个文件中去忽略它的变化,是无效的 (要想起效果, 要先删除这个文件, 提交一个版本, 再把这个文件加进来: 不建议,有点繁琐)
本地项目提交
假设我本地已经有一些需要管理(但是从来没有通过Git管理)的代码, 我想提交到Git仓库管理起来.一般有两种方式
方式一
- 手动创建远程仓库
- 创建本地仓库(
git clone
): 产生本地仓库, 工作空间, 缓冲区 - 把文件移到 工作空间 目录
- 管理文件(
git add .
) - 产生版本(
git commit -m '注释'
)到本地仓库 - 提交到远程仓库
git push
- 正常使用
方式二:
- 在代码文件所属目录, 创建本地仓库(
git init
)(还创建了缓冲区 和 工作空间) - 管理文件(
git add .
) - 产生版本(
git commit -m '注释'
)到本地仓库 - 创建远程仓库: 不要选择任何模板和初始化 (创建了一个全空的远程仓库)
- 关联远程仓库:
git remote add origin https://gitee.com/snow-lee/lalala.git
- 提交到远程仓库:
git push -u origin "master"
- 正常使用