一、Git简介
1. 理解
开源的分布式版本控制系统,可以有效 高速的处理应用由小到大项目版本管理。
2. 版本控制系统
版本控制系统 跟踪整个项目的开发过程 从开始到结束,核心任务就是查阅应用操作的历史记录 以及 多用户协同开发大型的应用
3. 版本控制系统分类
① 集中式版本控制系统 svn
版本仓库存放在中央服务器,team每个人从中央服务器下载代码,每个人操作之后 再提交到中央仓库
② 分布式版本控制系统 Git
没有中央仓库,team每个人电脑都是一个完整的仓库,借助于第三托管平台,实现多人合并项目,推送到对应的托管平台即可
4. Git的特点
① 速度快、操作简单
② 对非线性开发模式的强力支持(允许成千上万的分支协同开发)
③ 完全的分布式
④ 高效管理大规模的应用
clone克隆,从远程仓库克隆一份到本地仓库。第一次操作
pull拉取, 从远程仓库拉取项目到本地 ,自动合并 最后放入到工作区
push推送,代码完成后,需要团队共享代码,将本地仓库代码推送到远程仓库
checkout:将本地仓库的代码检出到工作区
add: 在提交本地仓库之前 要先将代码添加到暂存区 便于记录
commit: 将提交到本地仓库 便于推送远程仓库
本地仓库: 在本地主机上的一个代码库,可以独立存在,也可以与远程仓库进行关联
工作区:对任何文件的修订(增删改),都先放在工作区,工作区不与任何仓库分支进行关联
暂存区:把修订的文件,从工作区经过add(添加)后与某一个仓库分支进行关联,只要进 入缓存区的文件才能commit(提交)到本地仓库。
远程仓库 : 在局域网或互联网上的一个主机,存放代码库的主机或平台,比如GitHub、 Gitee.com(码云)
二、下载安装
1. 地址:https://git-scm.com/
2. 傻瓜式安装
三、使用
1. 配置
使用之前做全局配置 设置账户和邮箱
git config --global user.name '用户名'
git config --global user.email '邮箱'
2. 操作
2.1 本地仓库操作
- 初始化仓库 在目录下 执行命令
git init
- 在该仓库中操作之后,提交到暂存区
git add 文件名/.
- 提交到本地仓库
git commit -m '提交信息'
- 查看有哪些提交 信息
git log # 当前提交的之前版本
- 版本回退
git reset --hard '版本ID'
- 回到未来的提交
git reflog # 查看所有版本
git reset --hard '未来提交版本ID'
- 删除文件(只能删除已提交到仓库的文件 未提交的不能删除)
git rm 文件名
2.2 分支操作
- 查看当前仓库的分支
git branch
git branch -v # 分支的更多信息
git branch -av # 本地和远程的分支
- 创建分支
git branch 分支名
git branch -d 分支名 # 创建并切换
- 切换分支
git checkout 分支名
- 合并分支(将其他分支合并到master)
先切换到master git checkout master
再执行合并 git merge 子分支名
注意:
如果多分支操作同一个文件,分支合并的过程中会产生合并冲突问题
解决:
先打开文件修改里面不应该出现的内容
再添加到暂存区 然后提交即可
2.3 远程仓库操作
为了实现协同开发 需要将本地仓库共享给团队其他人 ,需要借助远程仓库(第三方托管平台)
-- GitHub (https://www.github.com)
-- 码云 (https://www.gitee.com)
HTTPS方式:
- 创建远程仓库 码云上创建
- 克隆远程仓库
HTTPS:git clone HTTPS地址
- 推送到远程仓库
1. 操作完成之后需要将操作的内容提交到本地仓库
2. 才可以推送到远程仓库
git push
SSH方式:
- 配置SSH
1. 生成密钥和公钥:ssh-keygen -t rsa
2. 将生成的密钥配置到码云
- 克隆远程仓库的项目
git clone ssh地址
- 上传到远程仓库
1. 先添加本地仓库
2. 执行
git push
其他命令:
1. 查看当前本地仓库 关联的远程仓库
git remote -v
注意:origin 是指远程仓库的默认服务名
2. 推送远程仓库
git push origin master
3. 解除远程仓库关联
git remote rm origin
4. 添加远程仓库
git remote add origin ssh地址
5. 拉取远程仓库中新内容 并合并到本地仓库
git pull origin master
四、Idea中Git操作
1. idea整合Git
2. 项目leader
3. 开发者
4. idea中Git的分支
5. idea中git的历史提交