开源的分布式版本控制系统,可以有效、高速处理从很小到非常大的项目版本管理
集中式&分布式
集中式
集中式版本控制系统,版本库是集中存放在中央服务器的,开发时要先从中央服务器取得最新的版本,然后开始工作,工作完成后把自己的成功推送给中央服务器
全程必须联网
分布式
没有中央服务器,每个人的电脑上都是一个完整的版本库
和集中式相比,分布式版本控制系统的安全性高很多
GIT不只是不需联网,还有极其强大的分支管理
GIT特点
- 开发者可以提交到本地,其他开发者都可以拷贝一份完整的GIT仓库
GIT下载和安装
不建议到官网下载,要翻墙
- 安装exe,除了选择安装目录,其余选项全默认
- 在任意一个地方右键git bash here启动git
- 输入**git —version** 查看版本,有就成功
- 打开浏览器,输入github.com,注册一个账号并登录
账号:parksoap
密码:slimshadyeminem123123
- 在打开的git软件中输入
git config —global user.name “github注册账号的名字”
git config —global user.email “注册时绑定的邮箱”
- 查看当前配置信息
git config —list
在github网站中点击右上角create new repository
创建完成后勾选SSH
- 注册SSH公钥,打开git软件
输入ls ~/.ssh,
如果没有目录,输入mkdir ~/.ssh
- 生成密钥
ssh-keygen -t rsa -C “注册账号时的邮箱”
之后三个选项直接Enter
**
- 获取公钥
cat ~/.ssh/id_rsa.pub
**
- 检查公钥是否注册成功
ssh -T git@github.com
输入后再输入yes
- 创建一个无中文的本地仓库文件夹,在这个目录中右键打开git软件
- 初始化本地版本库
git init
不要手动修改.git文件夹中的文件
- 在当前目录中创建一个文件,软件中输入
git add 文件.格式 成功不会反馈信息,失败返回信息
再输入 git commit -m “本次操作的描述信息”
vim 文件** 查看文件**
- 如果不小心删除了本地仓库的文件,可以从版本库中恢复
git log 查看日志,可以在后面加上 —pretty=oneline,设置日志文件行数
输入q退出日志
输入**q**退出日志
- 回退版本 **git reset**
git reset —hard HEAD^** 回退到上一个提交的版本
用HEAD表示当前版本
回退到指定的提交版本 **git reset —hard 日志文件中的commit id
git reflog 回退版本时回退错了或者后悔了可以用这个命令
- 撤销修改
修改了还没放到暂存区(没提交) git checkout 文件名.格式
git status 查看工作区和暂存区文件状态
git diff 展示不一样的地方
git status关心文件更新状态,git diff关心文件更新内容
git restore —stage
- 删除文件
git rm 要删除的文件.格式
误删后,**只要版本库中还有,就能恢复,使用版本回退git checkout 文件**恢复
使用远程版本库
使用HTTPS
使用SSH
在官网SSH页面上找到这条命令,在软件中运行,没有提示表示成功
再运行git push origin master 将本地版本库的文件连接到远程版本库,在官网中SSH页面下可以看到同步的文件
拉取文件
git pull
从远程版本库直接拉去文件直接拉取到本地工作区
git pull 远程主机名 分支名
git fetch
要将fetch拉取到本地版本库中的内容放到工作区中,需要使用以下命令
git merge 远程主机名 分支名
先从远程版本库拉取文件到本地版本库,再从本地版本库取文件到工作区
- 获取远程版本库中全部更新
git fetch 远程主机名
- 获取远程版本库中某个分支更新
git fetch 远程主机名 分支名
- 获取origin版本库的master分支
分支
使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线
Git的分支,本质上仅仅是指向提交对象的可变指针
Git默认分支名字是master,指向master分支的指针会在每次提交时自动向前移动
分支创建(git branch)
Git有一个名为HEAD的特殊指针,指向当前所在的本地分支
git beanch 命令仅仅创建一个新分支,并不会自动切换到新分支,使用git switch 分支名** **时会创建一个新分支并指向新分支,也可以切换分支
分支合并
git merge 分支名
如果合并的分支没有冲突,就会直接合并,如果有冲突,就需要先解决冲突,不然合并操作无效
合并后就把对应的分支删除掉**git branch -d 分支名**
分支管理策略
- master是非常稳定的,仅用来发布新版本,平时不在上面开发
- 创建一个新的开发dev分支,dev分支不是一个稳定的分支,小组成员根据dev分支在创建各自的分支,开发中不断将dev分支与自己的分支进行合并
- 当项目需要合并时,就将分支合并到master上发布
idea中操作git
setting—>version Control—>ignored Files(如果没有这个,到plugins中下载)
—>git 设置git安装目录下的bin的git.exe
到官网生成token,使用token连接
移到头像上,点击setting,左边developer setting—->personal access token,没有就生成一个
生成时把所有选项都勾上,第一个笔记随便写,生成后复制token到idea连接