git
1.什么是git?
git是一个免费的,开源的版本控制软件。
2.什么是版本控制?
版本控制:一种记录一个或者若干文件状态,内容变化,以便将来查询特定版本修订情况的系统。
具体功能:
- 记录文件的所有历史变化。
- 随时可恢复到任何一个历史状态
- 多人开发
3.版本控制的软件
SVN 集中式
集中式是版本库在中央服务器上,工作时,用的都是自己的电脑,将代码提交到中央服务器,从中央服务器获取新的别人提交的代码。集中式必须联网才能工作,服务器如果挂掉,整个版本控制软件都不可用。
Git 分布式
分布式是每台电脑都是中央服务器。工作时,不需要联网,只把修改的内容推送给别人。
缺点:比较消耗资源,代码不安全。
4.下载安装
下载:
git 官网 https://git-scm.com/download/win
镜像地址 :https://npm.taobao.org/mirrors/git-for-windows/
安装:
下一步下一步
检测是否成功安装
- 在任意位置,右键,出现 git bash here 和git gui here。
- 打开cmd 命令行,输入指令 git --version 出现版本号就表示安装成功。
5.基础配置
查看git的全局配置
git config --list
添加和修改用户名邮箱
git config --global user.email "你的邮箱"
git config --global user.name "你的用户名"
6.基础操作
创建git仓库
如果想要一个文件夹被git管理,就需要将其初始化为git仓库。
- 在文件夹下右键打开git base here。
- 输入指令 git init;
- 文件夹中会多出一个.git的隐藏文件夹。
git的分区概念
查看工作区和暂存区状态
git status
提交到暂存区
git add 文件名
git add 文件夹名
git add . 把所有的文件都提交
从暂存区回退
git reset HEAD 文件名
git reset HEAD 文件夹名
git reset HEAD . 把所有暂存区的文件都回退
//HEAD表示从当前版本中回退
如果没有提交过,回退时
git reset 文件名
git reset 文件夹名
git reset . 把所有暂存区的文件都回退
提交到版本库
git commit -m "提交说明"
查看版本历史记录
git log
效果如下:
// commit 版本ID 当前版本 master分支
commit 5149d1acac5f9024c45fbeeaf0df8f215584daa4 (HEAD -> master)
// 谁提交的
Author: zhangguihao <244389185@qq.com>
//提交的日期
Date: Thu May 27 10:22:53 2021 +0800
第二次提交,提交了一个c文件
commit 05495cd28296e9d404524cab01f3f3b7504f617a
Author: zhangguihao <244389185@qq.com>
Date: Thu May 27 10:16:01 2021 +0800
回滚历史版本
git reset --hard 版本ID
【注意】如果回到之前的版本,做了修改,再提交就相当于开辟了一个新的事件线,git log时就看不到之前的版本了。
删除历史版本
git rebase -i 版本ID
【注意】这个版本ID不能添加你要删除的版本,要填写它上一个版本的ID。
执行会弹出一个窗口(前提是:安装时,选择了vscode)
- 把第一行的pick修改为drop
- 保存退出
如果没有选择vscode
- 英文状态下,按下insert键,此时就可以编辑文本了
- 把第一行的pick修改为drop
- 按下ESC键
- 按下 :wq 回车 就删除成功了。
7.github
github是全球最大的社交编程网站。
github可以托管各种git仓库,并提供了可操作的web页面。
因为国内有时候打不开github,所以我们用gitee(码云)
8.将本地git仓库上传到远程
git本地仓库可以上传到远程仓库中,远程仓库可以是github或者gitee。
1.先创建一个远程仓库
连接方式
https
-
在任意位置下新建一个和仓库名同名的文件夹,最好父级目录不要有中文。
-
随意创建一个文件。
-
将新建文件提交成版本。
-
git remote add origin 你的仓库地址
remote 远程
origin 变量名,表示你的仓库地址。以后我们需要用到仓库地址的时候,就可以直接用origin
不需要再写很长的地址了。
这是将本地仓库与远程仓库进行关联
git push -u origin master
push:推送
-u:记录下你本次推送的地址,哪一个分支,下次提交时,只需要写git push即可。
-u origin master:相当于记住用户名,密码。
git remote rm origin
以上代码是将git配置项中远程仓库地址删除
ssh公钥
-
在随意位置,打开命令行
-
输入以下命令
-
ssh-keygen -t rsa -C "git配置的邮箱"
-
按下三个回车,在你的C:\Users\Administrator.ssh目录下会生成两个文件。
-
-
打开id_rsa.pub文件,将内容复制
-
打开gitee 设置–安全设置–ssh公钥 将复制的内容粘贴
-
来到仓库,点开克隆,选择ssh,复制路径
-
执行
-
git remote add origin git@gitee.com:你的地址
-
7.git push -u origin master
9 从远处仓库拉取代码到本地
在需要拉取到位置,打开git bash
输入 git clone ssh的地址 回车即可。
10 git相关文件
README.md
远程仓库中关于该项目的说明。
.gitignore
git提交的忽略文件,如果有需要忽略的文件,可以把文件名写在里面。
11.分支
每个仓库都有一个默认分支 master 第一次都会推送到master分支上。
11.1 新建分支
git brance 分支名
11.2 查看所有分支
git brance -a
11.3 切换分支
git checkout 分支名
11.4 删除分支
git branch -d 分支名
【注意】删除时,必须切换到别的分支上,才可以删除要删除的分支。
11.5 合并分支
当前分支的工作开发完成后,需要将当前分支的代码合并到master上。
- 先切换到master分支上
- git merge 分支名
- 将合并后的版本推送到远程仓库。
11.6 将本地分支推送到远程
当我们在本地创建分支后,默认是不会上传到远程仓库的,git默认的上传分支是master分支。
git push origin 分支名
11.7 将远程分支拉取到本地
git checkout -b dev(本地分支名称) origin/dev(远程分支名称)
11.8 删除远程分支
git push origin --delete 分支名
11.9 分支命名规范
- 主分支 master
- git仓库在创建时会自动生成,不要在master上面写代码。它只接受dev分支的合并。
- master分支上的代码要与正式环境保持一直。
2.主开发分支 dev
初始化项目之后,会从master分支上开辟。一般也不再dev上写代码。
3.功能分支 feature-xxx
从dev上开启的分支。比如开发购物车模块,我们可以起名 feature-shopCar 开发完成后,合并到dev上。
4.bug修复 feature-xxx-fix-xxx
第一个xxx是模块名,第二个xxx是bug的编号。
5.紧急修复bug hot-fix-xxx
从master直接开辟,用于紧急情况下的bug修复。XXX可以是bug编号,或者日期等等。