# 一、目前开发存在的问题?
1、开发有没有可能是一个人?
不可能
A、B、C、D 四个人开发一个项目
目前团队开发存在的问题 |
|
二、版本控制工具
- Git:分布式版本控制工具
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
在远程和本地都有同样的代码,如果远程或者本地出现故障,可能通过另一个本地代码进行还原【避免了单点故障】
作者:就是Linux的作者【Linus Torvalds】
- SVN:集中式的版本控制工具,只有一台主机服务器【有单点故障】
三、下载与安装
3、安装:闭着眼睛下一步
安装成功 |
|
4、配置提交用户名和邮箱
4.1 基本命令
基本命令 |
|
|
git --version |
|
|
git config --global user.name "Your Name" git config --global user.email "email@example.com" |
|
|
四、Git的工作流程
git的工作流程 |
|
|
- 本地仓库:一个.git隐藏文件夹【不要去动其中的东西】
- 工作区:包含.git隐藏文件夹的目录
- 暂存区:本地仓库中一个文件
- 远程仓库:跟本地仓库一个性质的云端仓库
Git中的概念 |
|
五、基本命令
1、初始化本地仓库
git init |
|
2、添加内容到暂存区
git add 文件名【.】 |
|
3、提交到本地仓库
git commit -m '提交的日志信息' |
|
4、查看日志、状态
git log [--oneline] |
|
git status 【-s】 |
|
5、回退版本
5.1 方式一 git reset 【了解】
git reset --hard 版本号 |
|
回退一个版本或多个版本 |
git reset --hard head^ :回退到上一个版本 |
|
git reset --hard head~2:回退到上几个版本 |
|
如果忘记了这个版本号,是不是就回不去了
5.2 方式二 git checkout
git checkout 版本号 |
|
git checkout 版本号 -b 分支名 |
|
用分支来保存历史版本
6、分支
分支就是一条时间线 |
|
6.1 查看分支
git branch |
|
6.2 创建分支
git branch 分支名 |
|
6.3 切换分支
git checkout 分支名 |
|
6.4 删除分支
要切换到master分支,自己不能删除自己
git branch -d 分支名 |
|
6.5 合并分支
git merge 被合并的分支名
谁去合并其他分支,那么就得在谁这个分支操作
合并的时候,有可能会产生冲突。
多个分支修改了同一个文件同一处地方,就可能产生冲突。
解决冲突时,需要商量后,才能决定如何合并有冲突的文件
合并分支产生了文件冲突 |
|
冲突的文件内容 |
|
7、远程仓库相关操作
1、造型
Github:最大交友(交换代码)网站
Gitee:中国版的交友(码云)网站
Gitlab:一般是Linux中搭建的版本控制工具
2、Gitee
2.1 注册
注册 |
|
2.2 登录
登录 |
|
2.3 创建远程仓库
创建远程仓库【建立创建一个公开的空仓库】 |
|
3、克隆仓库到本地
git clone 远程仓库的地址【目前都是https的方式】 |
4、查看关联远程仓库
git remote [-v] |
|
5、推送内容到远程仓库
git push origin master origin:远程仓库的别名 master:远程仓库的分支名 |
|
6、拉取远程内容到本地
git pull 远程仓库的别名 远程仓库的分支名 |
|
8、忽略指定内容
在真实开发中,有很多内容是不需要提交的。因为某些文件提交,可能就会产生冲突
譬如:我们使用idea开发工具,而idea会为每个工程创建一个独立的.idea目录,其中存放都是当前idea软件的一些配置信息,如果把内容提交到了远程仓库,那么其他开发人员拉取远程仓库的内容时,会把.idea目录一并拉取下来,而它本地是有.idea目录的,那么该目录很有可能就会产生冲突。
- 在初始化本地仓库之后,第一次提交内容之前,创建.gitignore文件。
- 把要忽略的内容写入到.gitignore文件中【内容可以使用通配符,如*】
- 提交时,把.gitignore文件一并提交,并推送到远程
六、TortoiseGit
1、概念
- 一款图形化操作Git的工具,每个工具的菜单完成内容,底层都是git命令
2、安装
安装成功 |
|
3、使用:暂不提供
七、IDEA使用Git
1、IDEA集成Git
默认会自动集成
idea集成Git |
|
2、idea工程交给Git来管理
idea工程交给Git来管理 |
|