开源的分布式版本控制系统,可以有效、高速处理从很小到非常大的项目版本管理

集中式&分布式

集中式

集中式版本控制系统,版本库是集中存放在中央服务器的,开发时要先从中央服务器取得最新的版本,然后开始工作,工作完成后把自己的成功推送给中央服务器
全程必须联网

分布式

没有中央服务器,每个人的电脑上都是一个完整的版本库
和集中式相比,分布式版本控制系统的安全性高很多
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
git - 图1
在github网站中点击右上角create new repository
git - 图2
创建完成后勾选SSHgit - 图3

  • 注册SSH公钥,打开git软件

输入ls ~/.ssh,
如果没有目录,输入mkdir ~/.ssh

  • 生成密钥

ssh-keygen -t rsa -C “注册账号时的邮箱”
之后三个选项直接Enter
**git - 图4

  • 获取公钥

cat ~/.ssh/id_rsa.pub
**git - 图5
git - 图6

  • 检查公钥是否注册成功

ssh -T git@github.com
输入后再输入yes
git - 图7

  • 创建一个无中文的本地仓库文件夹,在这个目录中右键打开git软件
  • 初始化本地版本库

git init
不要手动修改.git文件夹中的文件

  • 在当前目录中创建一个文件,软件中输入

git add 文件.格式 成功不会反馈信息,失败返回信息
再输入 git commit -m “本次操作的描述信息”
vim 文件** 查看文件**

  • 如果不小心删除了本地仓库的文件,可以从版本库中恢复

git log 查看日志,可以在后面加上 —pretty=oneline,设置日志文件行数
image.png
输入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页面上找到这条命令,在软件中运行,没有提示表示成功
image.png
再运行git push origin master 将本地版本库的文件连接到远程版本库,在官网中SSH页面下可以看到同步的文件

拉取文件

git pull

从远程版本库直接拉去文件直接拉取到本地工作区
git pull 远程主机名 分支名

git fetch

要将fetch拉取到本地版本库中的内容放到工作区中,需要使用以下命令

  1. git merge 远程主机名 分支名

先从远程版本库拉取文件到本地版本库,再从本地版本库取文件到工作区

  • 获取远程版本库中全部更新

git fetch 远程主机名

  • 获取远程版本库中某个分支更新

git fetch 远程主机名 分支名

  • 获取origin版本库的master分支

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.exeimage.png
    image.png
    image.pngimage.png
    到官网生成token,使用token连接
    移到头像上,点击setting,左边developer setting—->personal access token,没有就生成一个
    生成时把所有选项都勾上,第一个笔记随便写,生成后复制token到idea连接