git
一、git
是什么?
git
是一个代码管理协作工具,类似的软件还有 svn
,不过 svn
是集中式的,git
是分布式的。
git
是Linus开发的分布式版本控制工具,我们可以用它来管理代码,管理方式又分为 github
和 gitlab
。
github
(已被微软收购)是世界范围内协作。
gitlab
是公司范围内协作,需自己搭建。
github
和 gitlab
都依赖于底层的git
,git
提供了一系列命令,操作方式可以使用命令行和GUI(一般是用小乌龟TortoiseGit)。
二、git
使用的基本流程
2.1 创建仓库或者克隆仓库
- 在空目录下初始化仓库
git init
- 根据远程仓库地址克隆仓库
git clone url
2.2 添加或者阅读 readme
文件
- 主要是介绍项目是做什么的。
2.3 添加或者阅读 license
文件
- 主要是告诉别人需要根据什么协议使用你的代码。
2.4 添加或者查看 .gitignore
文件
- 主要是告诉
git
提交代码的时候忽略哪些文件或者目录
2.5 开始进行代码编写,并每天进行代码提交
2.6 每次进行代码编写前,先进行代码更新
三、git
的工作原理
git
围绕代码储存以及代码更改记录展开。涉及以下几个重要概念:
- 远程仓库
远程仓库一般放在团队都能访问的地方,用于大家访问以及合并已经测试通过并且稳定的代码。
- 本地仓库
本地仓库是每个开发人员开发的基础,它会和远程仓库建立联系,我们可以把本地的改动提交到远程仓库,让别人看到。也可以把别人的改动更新到本地。
- 分支
分支是为了区分不同的改动,或者为了区分不同的功能。我们可以通过分支在同一个代码仓库中维护许多不同的版本。
- 标签
标签为我们开发到某一个地方做下了记录,我们可以通过标签回溯到那里,然后新建一个分支继续向前演进。
- push
每个人的本地都有一个项目副本,要把自己的改动提交上去让别人看到,就需要 push
。
- pull
要想保持项目最新,同时别人的改动自己能看到,以及避免自己和别人改动发生冲突,改动前就需要 pull
,保证代码最新。
四、git
基本操作
同步远程仓库
git pull
添加filename文件
git add filename
添加提交描述
git commit -m "update"
在当前状态添加tag1.0标签
git tag tag1.0
创建dev分支
git branch dev
切换到dev分支
git checkout dev
列出所有分支
git branch -a
显示本地仓库状态
git status
提交本地改动记录到远程仓库
git push
五、git
团队协作基本操作
5.1 找到项目所在地,github
还是 gitlab
5.2 fork
项目
5.3 将自己 fork
的项目克隆到本地
5.4 新建一个分支,在该分支下进行代码更改或编写
5.5 编写更改完成后,提交代码,并将新分支的代码合入,同时删除新分支
5.6 在自己 fork
的项目里提交 merge
请求,等待项目拥有者合并
六、其他一些未明说的问题
6.1 要想使用 git
需要先下载安装,系统一般不自带
6.2 安装完需要配置用户名、密码、代理等
6.3 上传 github
或 gitlab
需要先注册账号,有邮箱即可
6.4 上传代码时如果不想每次都输入密码,就在本地生成一个 ssh
公钥,并把它上传到 github
或者 gitlab