git操作和笔记

使用本地的 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 [email protected]: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: [email protected]:famous-z/blog.git
            branch: gh-pages
    
  • 执行 hexo d 就可以自动部署到 github
  • 如果创建新的文章之后 需要执行 hexo g 在运行
vue 部署
  • 因为是单页面应用,如果用了路由,有两种方案
    1. 使用路由的 hash 模式
      • 将 mode 改成 hash
      • 如果部署的服务器是带路径的,就是如果要部署到 github 上的 gh-pages 需要添加一个 publicPath 配置
        • 在项目根目录新建 vue.config.js ,这个文件是 vue 的配置文件,会自动和项目原配置合并
        • 根据服务器地址修改对应的 publicPath
      • 重启项目,保证本地项目运行没问题
      • 打包成品到本地,需要执行 npm run build
      • 将 dist 文件夹下起一个本地服务,项目可以正常运行serve .
      • 将 dist 文件内的所有内容上传到服务器
      • 使用服务器网站直接访问
    2. 使用 history 模式,此模式的时候,必须对部署的服务器进行设置,所有地址全部指向 index.html
  • 更新
    1. 借助 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 分支。

你可能感兴趣的:(git,git,github)