使用本地的 git 工具操作 github
1. 网上创建好了有内容的仓库,本地去更新
- 将远端的仓库克隆到本地使用
git clone 地址
命令- 远端地址分为两种 1. http 地址 2. ssh 地址
- 在克隆好的项目中更新一个 index.html
- 将做好的更新提交到远端
- 在对应仓库打开 npm
- 执行
git add .
将对仓库的修改让远端记录 .代表所有更改,可以换成文件名 - 执行
git commit -m'更新信息'
更新信息指这次的更新标题- 第一次执行这个命令会失败,提示 Please tell me who you are.
- 按照提示告诉远端 1. 执行
git config --global user.email
- 执行
git push
2. 网上创建好空仓库,将本地的项目更新到网上
- 网上创建空仓库,仓库名最后和本地的项目名相同
- 准备好本地的项目
- 在本地项目的根目录内打开命令行工具,将本地的项目制作成 git 仓库,执行
git init
- 初始化空仓库之后,将本地项目的所有修改让远端记录,执行
git add .
- 将此次记录制作成版本 执行
git commmit -m 'first commit'
- 将分之强制重命名成 main 默认创建叫 master 执行
git branch -M main
- 由于本地的仓库没有远端地址,所以需要添加一个远端地址
git remote add origin 仓库地址
- 将本地的内容提交到远端,由于是第一次和远端交互,提交的时候需要带 地址和分支,执行
git push -u origin main
添加 ssh 密钥
- 在任意位置打开命令行工具执行
ssh-keygen
创建密钥。默认生成公钥和私钥 - 在生成密钥的位置找到公钥 依次执行
cd ~/.ssh
然后ls
然后cat id_rsa.pub
- 然后复制 一大堆英文字母
- 去 github 网站新建一个 ssh 每一个系统有一个 ssh 密钥
- 以后下载上传更新仓库直接使用 ssh 地址就不需要密码了
两个用户操作同一个仓库下的同一个分组 main
网上操作当成一个用户,本地的操作当成一个用户
- 网上的小a同事,更新了自己代码功能(和小b操作的不是同一个文件)
- 本地的小b,工作做完了,需要更新自己的代码,但是小b提交(push)的时候失败了,提示远端包含本地不存在的工作,不允许提交
- 只要本地和远端地址不一致,就不允许上传
- 需要将本地不存在的远端的版本拉取下来 执行
git pull
会弹出一个新的编辑器 东西 按住shift按两下z 会保存并推出 然后git push
就行了
情况二
- 网上的小a同事,对index.html 进行更新,并上传
- 本地的小b,工作做完了,也要更新自己的代码,也是修改了index.html ,然后上传,依然上传失败
- 也会提示远端存在本地不存在的版本,需要执行‘git pull’拉取远端更新。但是这次 github 并不会自动帮你合并版本,而是需要你解决冲突之后,自己制作合并之后的版本上传,重新 add commit push
git 分支
一个 git 仓库可以有多个分支默认只有一个 main 分支,默认所以内容放在了 main 分支
- 网上创建好带 readme 的仓库 ,使用 ssh 克隆到本地(其实只是克隆了 main 分支的内容)
- 在本地的仓库内打开命令行,创建一个新的分支
git branch 分支名
,这步操作只是在本地创建了一个新的分支,可以使用git branch
查看本地仓库的所有分支,带星号的是当前所处分支。创建好的分支默认里面的内容和当前所在分支完全一样 - 使用
git checkout 分支名
切换到对应的分支- 可以使用
git checkout -b 分支名
新建分支并切换
- 可以使用
- 在分支的文件夹下新增 index.html 并使用 git 三步上传,长传会失败,因为远端不存在新增的分支需要使用
git push --set-upstream 分支名
特殊的分支 gh-pages, 是 github 提供的免费服务器
- 当新建的分支名是 gh-pages 的时候,这个分支下的所有内容都会部署在
github用户名.github.io/仓库名
地址下,会默认访问 index.html
分支的团队合作一个人一个分支
-
网上新建一个空仓库和本地项目重名
-
本地新建vue项目,删除.git文件夹
- vue 项目创建的时候自带 .gitignore 文件,该文件是 git 忽略上传的文件,该文件内写的所有内容都会忽略上传。
-
进入到项目中打开命令行,制作成仓库并上传
git init
git branch -M main
然后git add .
git commit -m'first'
然后git remote add origin git@github.com:famous-z/vue-test.git
git push -u origin main
-
创建分支并上传
-
切换到对应的分支运行项目并且开始执行任务,做完之后上传
-
工作完成之后需要合并分支,将分支的更新全部合并到 main 分支,先切换到 main 分支 然后
git merge 分支名
将对应分支的修改合并到 main 分支,然后直接git push
将合并好的更新提交到网上。- 有时 merge 可能合并失败,提示你解决冲突然后做版本上传
-
上面的分支操作流程 a 和 b 彼此不知道做了哪儿些更新(不太好)
-
当 a,b 一起合作一个分支的时候,如果 a 更新了,并且 main 也更新了,那么 b 开始工作的时候,需要拉去 main 的更新,切换到 b 分支,执行
git pull origin main
,工作完成后 上传即可
使用hexo创建博客
- 下载完成hexo之后,使用
hexo init
创建博客 - 在 github 上创建一个新的空仓库
- 执行
npm install --save hexo-deployer-git
创建一个新插件 - 修改
_config.yml
文件 中url 和 最下面 Deployment 部分url: https://famous-z.github.io/blog/ deploy: type: git repo: git@github.com:famous-z/blog.git branch: gh-pages
- 执行
hexo d
就可以自动部署到 github - 如果创建新的文章之后 需要执行
hexo g
在运行
vue 部署
- 因为是单页面应用,如果用了路由,有两种方案
- 使用路由的 hash 模式
- 将 mode 改成 hash
- 如果部署的服务器是带路径的,就是如果要部署到 github 上的 gh-pages 需要添加一个 publicPath 配置
- 在项目根目录新建 vue.config.js ,这个文件是 vue 的配置文件,会自动和项目原配置合并
- 根据服务器地址修改对应的 publicPath
- 重启项目,保证本地项目运行没问题
- 打包成品到本地,需要执行
npm run build
- 将 dist 文件夹下起一个本地服务,项目可以正常运行
serve .
- 将 dist 文件内的所有内容上传到服务器
- 使用服务器网站直接访问
- 使用 history 模式,此模式的时候,必须对部署的服务器进行设置,所有地址全部指向 index.html
- 使用路由的 hash 模式
- 更新
- 借助 pg-pages 工具包自动更新 gh-pages 分支
- 项目内安装 gh-pages 包
npm i gh-pages --save-dev
- 在 package.json 中添加一个 script 字段 ‘deploy’:“gh-pages -d dist”
"scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build", "lint": "vue-cli-service lint", "deploy": "gh-pages -d dist" }
- 打包编译
npm run bulid
- 将对项目修改的源码更新到 main 分支
- 执行
npm run deploy
自动更新 gh-pages 分支。
- 项目内安装 gh-pages 包
- 借助 pg-pages 工具包自动更新 gh-pages 分支