git
-
中文名称: 分布式版本管理系统
- 它是一个安装在你的电脑上的应用程序(软件)
- 它用来管理你的项目目录及文件
- 它的管理方式是使用命令来进行的
-
官网
- 网址: https: //git-scm.com/
- 下载: https: //git-scm.com/downloads
-
安装
- 下一步下一步到底
- 安装完毕之后 会有一个
git bash
桌面图标 右键也会增加两个选项:git GUI here
git bash here
- 点击之后会出现一个
色彩鲜明
的命令面板 等价于 cmd命令面板 - 我们可以在这里调用git的指令
-
git初始化
git是用来管理我们的项目文件的。但是git不会自己找,需要我们
说明
。说明方式,就是告诉git 这是一个需要你来管理的目录, 简称git目录
。git天生只管理文件 不管理空文件夹
对应的指令就是
git init
将一个目录初始化为git目录- 操作步骤: 1 打开你要管理的项目目录 2 右键 选择
git bash here
3 在该命令面板中输入git init
并回车 会生成一个.git隐藏目录 有该目录 就表示git正在管理着这个目录 - 打开命令面板的方式
- 1 git bash here
- 2 打开目录 按住shift键 右键 选择
在此处打开 powershell 窗口
然后调用git init
命令 - 3 打开cmd 切换到该目录下 调用
git init
命令
- 操作步骤: 1 打开你要管理的项目目录 2 右键 选择
-
git的状态
- git status 该指令用于查看当前的文件状态
- 调用该命令时会显示当前的整个文件结构中哪些被管理哪些没有被管理
- 如果显示红色 表示没有被管理 或者是有过修改
- 如果显示的是绿色 表示在暂存区中
- git status 该指令用于查看当前的文件状态
-
git的三个存储空间
- 工作区
- 暂存区
- 历史区
-
git暂存区的操作
-
git add xxx 该指令用于将文件区的内容添加到暂存区
- 添加单个文件
git add index.html
- 添加一个目录
git add css/
- 添加所有
git add --all
或者简化方式git add .
- 添加单个文件
-
git reset xxx 该指令用于将暂存区中的内容撤销
- 撤销单个文件
git reset index.html
- 撤销一个目录
git reset css/
- 撤销所有
git reset --all
或者简化方式git reset .
- 撤销单个文件
-
-
历史区的操作
-
补充:
- git config --global user.email “输入用户邮箱”
- git config --global user.name “输入用户名字”
-
git commit -m ‘描述’ 该指令用于将暂存区中的内容添加到历史区 生成一个版本
-
git log 显示日志信息 默认只显示当前面板中的操作
-
git reset --hard versionID 该指令用于版本之间的切换
-
-
两个文件
- .gitkeep
- 没有别的作用,只是保持文件夹,该文件的存在会让git认为这是一个有内容的文件夹
- .gitignore
- 该文件的作用是让git忽略一些文件和文件夹
- 里面的内容就是忽略的文件和文件夹的路径
- 该文件请务必放在 .git 文件夹同级
- .gitkeep
github\gitlab
-
github
它是一个网站。它只接受由git这个软件上传的内容。可以理解为"云盘" 但是这个云盘只接受git上传。
-
网址
-
https: //github.com/
-
上传
-
定义
- 将git软件中历史区的内容提交到远端
-
远端
- github 国外的
- gitlab 国内的github
-
具体步骤
-
1 注册一个github账号
-
2 创建一个github仓库
-
3 建立本地git与远端github的信任关系
-
4 调用git命令进行上传
-
创建一个变量 保存远端地址
- git remote add origin https: //github.com/lilanbo/1909.git
origin是一个变量名 可以是任何的名字 但是推荐使用origin `https: //github.com/lilanbo/1909.git` 是git仓库的地址
-
git push -u origin master
- origin就是刚刚上一步定义的origin变量 它只需要定义一次就可以
-
master github上的主分支名称(推荐与本地分支名称一致)
-
-
-
-
下载
-
第一种 找到你要的项目地址
- 点击 cloneordownload 按钮
- 会看到两个选项 一个是 download ZIP
- 点击该按钮 会开始下载
- 下载完毕 解压缩到指定目录即可
-
第二种
- 点击 cloneordownload 按钮
- 会看到两个选项 一个是 download ZIP 另一个是一个地址
https: //github.com/lilanbo/1909.git
- 复制该地址
- 打开本地git bash 面板 切换到指定目录下
- git clone https: //github.com/lilanbo/1909.git
- 会下载该仓库中的内容
-
-
分支
分支指的是同一个项目 不同的需求 此时就需要分支
当你自己开发一个项目的时候,需要实现一个功能 此时你可以在主分支上开发、提交、开发、提交、开发、再提交。。。直到最终版本
当你与别人合作开发的时候。你负责一部分功能,他负责另一部分功能。此时谁都不允许在主分支上进行开发。
你应当自己开辟一个分支进行开发
他也应当自己开辟一个分支进行开发
当你们都开发完毕之后,会最终合并到主分支。 -
开辟新的分支
- git branch 分支名称
注: 新开辟的分支的模板就是你当前的分支
-
切换分支
- git checkout 分支名称
-
查看分支
- git branch
出现的是分支列表 有一个是高亮显示 前面带* 表示当前所在分支
-
创建并切换分支
-
git checkout -b 分支名称
-
合并分支
-
git merge 分支名称
-
git分支开发规范
- master分支 主分支 负责上线的代码 不允许任何人在这上面进行提交代码 只接受合并(只接受develop分支的合并)
- develop分支 主开发分支 从master上开辟 负责测试 不允许任何人在这上面进行提交代码 只接受合并(只接受feature分支的合并)
- feature分支 主功能分支 从develop上开辟 负责开发分支 开发时就在这个分支上进行开发
- feature-login
- feature-list
- feature-detail
- feature-xxx-fix分支 紧急bug修复分支 当上线项目出现紧急bug之后,直接从master分支上开辟 进行修复 修复完毕之后再合并回去。
- feature-login-fix
- 使用方法整理:
-
新项目初始化:
- $ git init
-
将文件添加到仓库:
- $ git add 文件名
- $ git add .
-
将文件提交到仓库:
- $ git commit -m “描述信息”
-
查看状态:
- $ git status
-
查看修改了什么:
- $ git diff 文件名
-
查看日志:
- $ git log
- 可以加上参数 --pretty=oneline ,这样看起来就比较整洁
-
版本回退:
- 当前版本用
HEAD
表示 - 上一个版本就是
HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
- 回退到上一个版本:
- $ git reset --hard HEAD^
- 回退到某一个版本号:
- $ git reset --hard 版本号
- 当前版本用
-
查看每次命令,方便查看版本号:
- $ git reflog
-
撤销修改:
-
$ git checkout – 文件名
-
把该文件在工作区的所有修改全部撤销,有两种情况:
-
一种是文件修改后,还没有放入暂存区,现在,撤销修改会回到和版本库一模一样的状态
-
一种是文件放入了暂存区,然后又修改,现在,撤销修改会回到添加暂存区后的状态
-
总之,就是让这个文件回到最近一次
git commit
或git add
时的状态 -
git checkout -- file
命令中的--
很重要,没有--
,就变成了“切换到另一个分支”的命令 -
$ git reset HEAD 文件名
-
假如放到了暂存区,还没有commit之前,发现自己编辑文件的时候有问题,幸好还没有提交,此时, Git同样告诉我们,用命令
git reset HEAD
可以把暂存区的修改撤销掉(unstage),重新放回工作区 ,执行命令后,发现暂存区是干净的,重新放回了工作区
-
-
-
-
删除文件:
-
$ rm 文件名
- 一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用
rm
命令删了
- 一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用
-
这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,
git status
命令会立刻告诉你哪些文件被删除了 -
现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令
git rm
删掉,并且git commit
-
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本
-
git checkout
其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原” -
注意:从来没有被添加到版本库就被删除的文件,是无法恢复的!
-
-
将项目上传到github
- $ git remote add 自定义变量名(例如origin) 仓库地址
-
把本地仓库的内容推送到github上
- $ git push -u 自定义的变量名 (例如origin) master
- 把本地库的内容推送到远程,用
git push
命令,实际上是把当前分支master
推送到远程 - 由于远程库是空的,我们第一次推送
master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
-
克隆一个本地库
- $ git clone 仓库地址
-
从github下载到本地
- $ git clone 仓库地址
-