01
Git简介
Git是一个免费的开源分布式版本控制系统,它可以快速高效地处理从小型到大型的项目。简单点说就是:git分布式版本控制工具(管理代码版本)。我们常用的Git平台有:Gitee(码云)、GitLab、GitHub等。
02
下载Git
这里提供Git下载地址:https://git-scm.com/downloads
03
Gitee配置SSH公钥
注册(用邮箱注册),并登录到Gitee后,鼠标移至右上角头像,下拉选项中选择 `设置`
左侧菜单栏中选择SSH公钥,在右侧添加公钥
怎么生成本机的公钥?请查看:https://gitee.com/help/articles/4181
04
Git日常操作
克隆代码(把远程仓库拉取到本地):git clone 仓库地址
查看仓库状态:git status
提交工作区代码到暂存区:git add 文件路径或者.(所有文件)
提交暂存区代码到历史记录区:git commit -m "本次提交的信息提示"
提交历史记录区的历史提交记录到远程仓库:git push origin 分支名称
注意点:
git提示的信息里面只要有fatal或者error这两个词随便一个,都是执行git命令失败了
05
创建项目与分支
- 在gitee中创建项目(例如创建了 demo222 这个项目),执行以下命令:
//克隆仓库到本地
git clone git@gitee.com:codesohigh/demo222.git
//检查当前分支
git branch
- 一般此时是master分支,但我们开发阶段一般用dev等其他分支,所以我们:
git checkout -b dev
// git checkout 命令加上 -b 参数,表示创建并切换,以上操作相当于:
git branch dev
git checkout dev
- 第一个注意的点:
在仓库没有初始化前,如果需要检查分支,一定要记住这句话:
未曾commit的仓库是无法检查分支的!
- 第二个注意点:实际上git checkout 不是切换分支的最佳选择,我们使用git switch 会更好:
git switch -c dev //创建并切换到新的dev分支
git switch dev //切换到已有的dev分支
06
文件提交
- 创建 index.js 文件,随便写点内容,提交:
git add .
git commit -m "修改了index.js"
git push origin dev
- 此时你会发现,git checkout master 切回master分支后,index.js这份文件会消失,因为当前分支不存在这个文件。
07
分支合并
- 假设当前项目已经完成,我们想要把dev分支合并到master,可以在master分支下使用:
git merge dev
此时,你会看到,项目中又有 index.js 了。
01
版本回滚
使用 git switch -c dev1 创建新的dev1分支,稍微修改dev1中的index.js,并且提交到远程仓库。
我们提交完成后,发现自己不想用当前代码,想回滚到上一次的代码,怎么办呢?
//查看当前项目提交的所有版本(含所有分支的操作)
git log
//git log 会出现很详细的信息,如果我们只想简单看看版本号,可以使用
git log --pretty=oneline
- 我们会得到:
- 如果我们只想回滚到指定版本,可以使用:
git reset --hard 版本号前几位
- 这里只需要写id号的前几个字母与数字就行,没必要全写,git会自动去检索。
但此时,我们再一次查看所有版本,发现:
最新写的那个丢失了。但我此时又后悔了,怎么办?
//重新reset即可找回
git reset --hard 之前的版本号
- 现在,就可以退回最新版本了。
- 但这个方法前提是你当前这个控制台不曾关掉,如果已经关掉了,你是没法知道版本号的,这时候要怎么办呢?
//Git提供了一个命令git reflog 用来记录你的每一次命令
git reflog
09
代码冲突
- 修改master的代码,执行:
git add .
git commit -m "提交master"
git push origin dev(当前的版)
然后执行:
git merge dev
- 我们会发现,vscode提示代码冲突:
此时,我们只需要点击我们想要的选项,即可解决代码冲突。
![0ca32db308fe1596dc7f8de2bef075df.png](https://img-blog.csdnimg.cn/img_convert/0ca32db308fe1596dc7f8de2bef075df.png)
![4e990d09b91c9edaf1d3359ab9ab537c.png](https://img-blog.csdnimg.cn/img_convert/4e990d09b91c9edaf1d3359ab9ab537c.png)