文章目录
一、git是什么?
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
1. git和svn的区别
SVN是集中式版本控制系统
,版本库是集中放在中央服务器
的而 工作的时候.用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网
才能工作,对网络带宽要求较高。
Git是分布式版本控制系统
,没有中央服务器,每个人的电脑就是一个完整的版本库 ,工作的时候不需要联网
了,因为版本都在自己电脑上。协同的方法是这样的:比如说自己在电脑上改了文件A ,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
Git是目前世界上最先进的分布式版本控制系统。
二、git的基本使用
git下载地址: http://git-scm.com/downloads
安装成功打开cmd必须配置的两个git(只用配置一次):
git config --global user.name "wangpiaopiao"
git config --global user.email "2934804917@qq.com"
查看相关配置:git config --list
1. git的基本操作
- 初始化仓库:
git init
(创建成功如果文件未显示是因为被隐藏,可以设置显示) - 添加文件到暂存区:
git add index.html
可以添加多个文件:git add index.html a.html
添加所有文件:git add .
(添加所有为txt的文件:git add *.txt
) - 将暂存区内容添加到仓库中:
git commit -m "第一次写入"
(-m “第一次写入” 表示注释) - 查看当前的文件状态:
git status
- 恢复到上一次提交仓库的代码:
git restore index.html
- 删除文件:
git rm a.txt
(如果文件是修改modified状态删除会报错)
强制删除:git rm a.txt -f
(文件是修改modified状态会被强制删除) - 取消暂存状态:
git restore --staged b.txt
- 重命名文件:
git mv a.txt a1.txt
2. git图形化安装工具
三、Git 分支管理
1. 分支的基本命令
- 查看当前分支:
git branch
- 创建新的分支:
git branch test
- 切换分支:
git switch test
--推荐
第二个写法:git checkout test
- 创建并切换分支:
git switch -c text1
- 第二个写法:
git checkout -b test
- 删除分支:
git branch -d test
- 查看历史记录:
git log
(Q键取消)
简洁版历史记录:git log --oneline
在开发中,我们拿到源码首先新建一个分支,在自己的分支上去修改功能。编写完成后,再把自己的分支合并到主分支中。
- 合并分支:
git merge update
- 回滚代码:
git reset --hard a48799306e42a
2. tag标签
可以为提交的节点设置标签,可以通过标签快速定位到不同的开发节点:git tag v1.0 commit的id号
可以直接用tag名推送:git push origin v1.0
删除本地的标签:git tag -d v1.0
删除远程服务器的标签:git push origin --delete v1.0
四、远程仓库
快捷键:在项目文件夹的cmd命令输入 code .
可以直接打开vscode工具
上传库有:GitHub 和 gitee
1. GitHub
GitHub是国外的远程仓库,速度很慢。是大部分人会选择的免费开源仓库。
1. github 的静态页面
在GitHub中,可以将自己的静态页面部署到GitHub中,它会给我们提供一个地址使得我们的页面变成一个真正的网站,可以供用户访问。
要求:
- 静态页面的分支必须叫做:gh-pages
- 如果希望页面可以通过xxx.github.io直接访问,可以创建的项目名直接用xxx.github.io的格式。
2. Gitee (常用)
gitee是国内的远程仓库,速度很快。
1. 克隆代码
- 先复制SSH里的代码
- 打开文件夹 cmd 命令:git clone SSH代码
2. 提交代码
拉取远程仓库的两个方法:
git pull
:拉取远程仓库最新的内容,如果远程仓库修改的内容和本地没有冲突,就会成功合并。 如果合并冲突,就会失败,需要手动合并
git fetch
: 只是获取远程仓库的修改内容,但不会帮我们合并到本地仓库中,需要自己手动合并
- 在gitee创建一个空的仓库
- 连接远程仓库时:
git init
- 添加文件:
git add .
- 把代码直接复制建立连接
- 刷新会生成你提交的代码
- 继续提交分支代码
注意:推送代码之前,防止有其他人也修改了当前代码,一定要先从远程库中拉取最新的代码
git pull
报错:
1.error:
error: remote origin already exists.
输入 git remote rm origin
清空仓库地址
2.
fatal: Custom certificate bundle not found at path: D:/鏉烆垯娆?Git/....
出现这种问题是我们仓库地址选择错了,应该采用SSH
地址,不应该使用HTTPS地址,将仓库地址改为SSH格式
就可以了
3.
error: src refspec master does not match any
error: failed to push some refs to ...
是由于仓库名称不一样,导致远程和本地的仓库不能关联上,统一远程和本地的仓库名称即可
1、把本地的 master 仓库名称修改为远端的 main
git push -u origin main
3. 代码合并冲突
冲突场景:本地有修改代码,远程仓库同时有更新相同的文件,但本地未拉下来,这时本地想要提交代码。
步骤:本地先暂存提交->拉取->有问题则解决冲突->推送;
- 远程仓库有更新的文件,本地未拉取过。
- 本地此时也在更改相应的文件
- 本地先暂存提交->拉取->会出现冲突
- 选择接受远程代码还是接受本地代码,或者两者都接受,然后保存并接收合并。
- 再重新拉取->推送,即可将代码提交到远程仓库。
4. gitignore忽略文件
忽略掉某个文件,不让这个文件提交到版本库中。
典型的 node_modules/ 文件夹
创建文件:.gitignore
- 以”#”号开头表示注释;
- 以斜杠“/”开头表示目录;
- 以星号“*”通配多个字符;
- 以问号“?”通配单个字符
- 以方括号“[]”包含单个字符的匹配列表;
- 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
3. docusaurus 快速部署网页
docusaurus是Facebook推出的开源的静态内容管理系统,通过它可以快速的部署一个静态网站。
网址:https://docusaurus.io/
使用:
- 安装:
npx create-docusaurus@latest my-website classic
(桌面会生成一个my-website的文件夹) - 启动项目:
npm start
- 安装依赖:
npm i
- 构建打包文件:
npm run build