git、gitee
- Git
Git
1、什么是git
Git是一个免费、开源的版本控制工具。
2、什么是版本控制
版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况的系统。
系统具体功能
- 记录文件所有的历史变化。
- 随时可以恢复到任何一个历史状态(版本)
- 多人协作开发
- 错误恢复
版本控制的工具
- SVN 集中式
- Git 分布式
3、下载和安装
下载:
官网下载 https://git-scm.com/
国内较快地址 https://npm.taobao.org/mirrors/git-for-windows/
安装
双击,下一步。
检测是否成功安装
1、鼠标在桌面或者文件夹中任意位置右键,出现 git bash here 和git gui here都表示成功。
2、打开CMD 输入 git --version 出现版本号表示成功。
全局配置
使用一下命令查看全局配置
git config --list
如果没有初始化过用户名和邮箱,需要设置一下用户名和邮箱。
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
邮箱地址最好是真实有效的,而是最好是GitHub或者gitee的注册邮箱。
4、基本操作
4.1初始化仓库
git不会自动管理你的文件夹,如果我们需要对文件夹进行版本管理,需要将当前文件夹初始化一个git仓库。初始化仓库后,这个文件夹以及它的所有后代文件夹以及子文件都会被git管理。
-
在需要git管理的文件夹下打开命令行。
-
输入 git init
-
文件夹会有出现一个.git的隐藏文件夹。此时,你的文件夹就会被git管理。
git会将管理的文件分为两个区域四个状态。
4.2 将工作区的内容添加到暂存区
【注意】工作区需要有内容,空的文件夹不会被添加。
- 当前目录下打开命令行
- 输入指令
- git add 文件名
- git add 文件夹名称
- git add --all
- 表示将当前工作区里面的所有未添加到暂存区的内容添加到暂存区。
- 简写方式:git add .
4.3 查看工作区和暂存区状态
- 当前目录下打开命令行
- 输入指令 git status 绿色表示文件以及添加到暂存区了,红色表示未添加到暂存区。
4.4 暂存区撤回内容
- 当前目录下打开命令行
- 输入指令(中间是两个-)
- git reset HEAD – 文件名
- git reset HEAD – 文件夹名称
- git reset HEAD – . (撤回暂存区所有的内容)
4.5 形成历史版本
将暂存区中的内容形成一个历史版本。【注意】暂存区还有内容。
- 当前目录下,打开命令行。
- 输入指令 git commit -m “这次提交的内容说明。”
4.6 查看历史版本
- 当前目录下,打开命令行
- 输入指令 git log
- 会以倒序的方式将本地文件中的历史版本显示出来。
// 历史版本ID
commit 2073eca472d19ea1cbb88065550c88e1a88c0b65 (HEAD -> master)
//设置的用户名和邮箱
Author: 2047 <244389185@qq.com>
//提交的日期
Date: Tue Mar 9 10:07:10 2021 +0800
//说明
git第一次提交
4.7 回滚历史版本
回滚到之前记录的某一个历史版本
- 当前目录下,打开命令行
- 输入指令 git reset --hard 版本id。 回车。
【注意】回滚后,尽量不要修改内容并提交。
4.8 删除历史版本
删除历史版本时,是使用删除版本上一个版本的id,而且删除后,该版本后的所有历史版本都会被删除。
- 当前目录下,打开命令行
- 输入指令 git rebase -i 历史版本id
- 会进入编辑状态, 按下键盘 i 键,将光标移动到左上角 将pick修改为drop。
- 按下esc键退出编辑状态
- 输入:wq 表示保存,回车。
5、GitHub
GitHub是全球最大的社交编程及代码托管网站。
GitHub可以托管各种git仓库,并提供一个web界面。
因为只支持git作为唯一的版本库格式进行托管。所以叫GitHub。
与它功能类似的网站还有一个:gitee(码云) 是国内的网站
6、git相关文件
readme.md 说明文件
对你仓库的内容进行描述说明。
内容格式为md格式。 将仓库传输到远程时,readme文件会自动显示在仓库下面。
.gitignore 忽略文件。
可以忽略一些不需要提交的文件。
该文件的位置必须与.git同级目录。
.gitkeep 占位文件
git不会管理你的空文件夹。如果你需要当前的这个目录,那你有两种选择
- 在空文件夹下,新建一个没有用处的空文件。
- 在空文件夹下,新建一个.gitkeep文件
7.将本地git仓库上传到远程
git本地仓库可以上传到远程仓库中。比如说GitHub 或者 gitee
上传的时候是将.git所在的目录下所有的同级文件上传到远程。而不是.git上级文件夹上传。
1.建立一个远程仓库
登录GitHub页面,如果没有账号,要先注册一个。
点击账户旁边的+
号,选择new repository 就可以新建一个仓库了。
2.确认本地仓库有一个没有上传过的历史版本。
3.在本地中添加一个远程仓库地址
git remote add origin https://gitee.com/envyTheCloud/ym001.git
remote 远程
add 添加
origin 变量名,可以*更改,值为后面写的远程仓库的地址。
我们以后需要使用远程仓库地址时,就可以直接使用origin。
4.将本地历史版本推送到远程
- 当前目录下,打开命令行。
- 输入指令 git push -u origin master
- push 推送
- -u 记录下你本次推送到哪一个地址,哪一个分支。如果你下次修改后,再次推送时,就不需要写后面的origin master。 只需要直接写git push即可。
- origin 表示远程仓库的地址。
- master 分支
8、将远程仓库拉取到本地
首次
- 打开gitee上的仓库详情页,复制仓库远程地址。
- 在本地找到一个文件夹
- 打开命令行,输入指令 git clone 远程仓库地址
非首次
- 在当前目录下,打开命令行
- git pull 获取远程仓库最新版本。
解决冲突
当远程仓库有了新的推送时,如果你本地没有更新,去推送新的版本时,两个版本同时对一个文件进行了操作,那么就会冲突。
解决冲突的步骤:
- 先 git pull 从远程仓库获取最新的版本
- 可以在vscode中解决冲突,选择使用的代码。
- git add . 然后git commit -m “提交说明” ,提交生成新的历史版本。
- 将新的版本 git push 推送到远程仓库。
9、分支操作
9.1 新建分支
- 当前目录打开命令行
- 输入指令 git branch 分支名
9.2 查看所有分支
- 当前目录打开命令行
- 输入指令 git branch -a
9.3 切换分支
- 当前目录打开命令行
- 输入指令 git checkout 分支名
9.4 删除分支
- 当前目录打开命令行
- 输入指令 git branch -d 分支名
9.5 合并分支
当分支的开发工作完成,需要将分支和master进行合并。
- 当前目录打开命令行
- 输入指令 git checkout master 进入master分支。
- git merge 分支名。 将分支与master合并
- 将合并后的版本git push 推送到远程仓库。
9.6 将分支推送到远程
当我们在本地创建其他分支以后,默认是不会上传到远程仓库的。 git默认是上传到master分支。
在推送时可以指定上传的地址与分支。
git push -u origin 分支名
9.7 将远程分支拉取到本地分支
git checkout -b dev(本地分支名称) origin/dev(远程分支名称)
9.8 删除远程分支
第一种方式:
打开命令行,输入
git push origin --delete 分支名
第二种:在gitee页面中直接删除。
9.9 分支命名规范
1.主分支 ---master
常见git仓库时会自动生成。一般来说,不要直接在master上面写代码,它只接受dev分支的合并。
master代码在实际项目中一般与线上的正式环境中的代码保持一致。
2.主开发分支 ---dev
初始化项目之后,从master分支上开辟的新分支。一般也不直接在上面写代码,而是从各个功能分支上合并代码。
dev分支接受各个功能分支的代码后,进行测试,测试完成后合并到master分支上,在将master分支上的代码发布到正式环境。也就是我们常说的项目上线。
3.功能分支 ---feature-XXX
是从dev分支上开辟的新分支。一般研发工作是在该分支上完成的。研发完成后,将其合并到dev分支上。假如开发购物车模块,分支名:feature-shopCar。
4.功能bug解决分支 ---feature-XXX-fix-XXX
第二个XXX可以是bug的编号。 是从功能分支上开辟的新分支。bug修复后,再将其合并到功能分支上。
5.紧急bug解决分支 --- hot-fix-XXX
直接从master分支上开辟的。进行紧急的bug修复。修复完毕以后,合并到mster分支上。
10、解决gitee上传问题
第一种:本地没有仓库,远程先创建一个仓库。
git clone 远程地址。
第二种:本地已经有了仓库,远程创建一个仓库。
添加远程仓库地址后,将本地版本推送到gitee远程仓库
git pull origin master --allow-unrelated-histories
进入编辑状态
1.按键盘字母 i 进入insert模式
2.修改最上面那行黄色合并信息,可以不修改
3.按键盘左上角"Esc"
4.输入":wq",注意是冒号+wq,按回车键即可
11、使用密钥拉取远程仓库
1.打开命令行,输入指令
ssh-keygen -t rsa -C "邮箱地址"
【注意】邮箱地址为git配置中的邮箱地址。
输入完成后,按下三个回车,直到出现新的命令行。此时,在 /c/Users/Administrator/.ssh/id_rs
目录下生成两个文件。
2.打开pub后缀的文件。复制内容
3.进入设置,找到ssh公钥,生成一个新的公钥。
4.在需要获取的文件夹下,打开命令行,输入
git clone ssh地址。