1、GitHub创建新的项目仓库

2、将项目clone下来(此时为main分支上,以前叫做master)

3、切换分支,git checkout -b my-feature

4、git diff 查看本地与git上代码的不同

5、git add . 添加到暂存区,git知道你将要提交什么

6、将my-feature分支修改的内容提交到GitHub的my-fetaure分支,

git push origin my-feature

github此时已经多出来一个my-feature分支

7、如果GitHub的main分支存在文件更新,此时,本地磁盘的main分支和GitHub上的main分支内容不一样

我们使用

git checkout main

然后再运行

git pull orgin master

意思就是将远端的main同步到本地的main

8、返回my-feature分支

git checkout my-feature

将main代码同步到my-feature分支

git rebase main

意思是:将本地修改放到一边,将远程的main拉到my-fetaure分支

此时会出现,git conflict需要手动选择你需要的代码,

9、使用了rebase之后,必须加上-f,表示强行push

git push -f origin my-feature

1.git clone // 到本地 2.git checkout -b xxx 切换至新分支xxx (相当于复制了remote的仓库到本地的xxx分支上 3.修改或者添加本地代码(部署在硬盘的源文件上) 4.git diff 查看自己对代码做出的改变 5.git add 上传更新后的代码至暂存区 6.git commit 可以将暂存区里更新后的代码更新到本地git 7.git push origin xxx 将本地的xxxgit分支上传至github上的git ----------------------------------------------------------- (如果在写自己的代码过程中发现远端GitHub上代码出现改变) 1.git checkout main 切换回main分支 2.git pull origin master(main) 将远端修改过的代码再更新到本地 3.git checkout xxx 回到xxx分支 4.git rebase main 我在xxx分支上,先把main移过来,然后根据我的commit来修改成新的内容 (中途可能会出现,rebase conflict -----》手动选择保留哪段代码) 5.git push -f origin xxx 把rebase后并且更新过的代码再push到远端github上 (-f ---》强行) 6.原项目主人采用pull request 中的 squash and merge 合并所有不同的commit

远端完成更新后 1.git branch -d xxx 删除本地的git分支 2.git pull origin master 再把远端的最新代码拉至本地

# TIPS

# 1、拉取代码

git clone https://...

// 切换分支
git checkout -b feature-fix
git pull origin feature-fix

# 2、git stash

场景:当你在你所在的分支写代码,线上出现紧急bug,你所在分支bug还没修改完成,不好提交代码,使用git stash

# 先把代码储存在本地缓存 ss是stash save的简写
git stash save "未改完的bug,等下再改"

git checkout master
git checkout -b fix-hot

stash更多操作

git stash # 暂存当前正在进行的工作,比如想 pull 最新代码,又不想加新 commit,或者为了 fix 一个紧急的 bug,先 stash,使返回到自己上一个 commit,改完 bug 之后再 stash pop, 继续原来的工作
git stash save "message" # 暂存时加备注 方便查找
git stash show # 默认显示第一个改动 如果显示其他 git stash show "stash@{1}"
git stash show -p # 改动的具体内容
git stash apply # 恢复第一个存储 恢复其他使用 git stash apply "stash@{1}"
git stash drop "stash@{2}" # 删除stash@{2}存储
git pop # stash apply 和 stash drop 结合体
git stash clear # 清空stash

修改完紧急bug,提交代码

git commit -am 'fix:修复线上紧急bub'

# 3、git amend

打错注释,如何修改一下呢?

git amend "fix:修复线上紧急bug"
git push

amend直译:修正

只修正文件,不修正提交信息,如提交的时候发现有文件忘记提交,先添加到暂存区,在使用下面的命令进行修正,之后就可以看到提交中已经有了忘记提交的文件

git commit --amend --no-edit

如果多提交了文件,也可以先通过git rm --cached <文件名>,再通过以上命令修正。

只修正提交信息,如提交时发现写的提交信息不太正确时,可通过以下命令修改

git commit --amend -m "feat: xxx"

修改提交信息和文件

git commit --amend

你的 bug 已经修复完,并且代码已经推到远程分支上。但是部署完,找测试看了一下,发现这个 bug 是修复好了,但是又导致出现了另一个 bug,还好你给测试买了一杯奶茶,让她不要在大群里说。然后你立马修复,又得重新提交,可是这要是提交上去,前端老大 review 时看到你的提交记录,"改个bug怎么怎么还多了一个 💢",这可怎么办?

4、reset

// 将HEAD指向前一次提交 即退回上一次提交到工作区
git reset HEAD~1
// 然后修改代码 重新添加到工作区提交
git commit -am 'fix:修改线上紧急bug'

# github actions自动部署

打开需要配置 Actions 的仓库,进入 Settings/Secrets 页面,配置 ACCESS_TOKEN 变量,储存内容为刚刚创建的个人访问令牌

编写 workflow 文件 点击仓库的 Actions 按钮 点击 Set up a workflow yourself 按钮 复制如下内容

name: GitHub Actions Build and Deploy

# 触发条件: push 到 master 分支后
on:
  push:
    branches:
      - master

# 设置上海时区
env:
  TZ: Asia/Shanghai

# 任务
jobs:
  build-and-deploy:
    # 服务器环境:最新版 ubuntu
    runs-on: ubuntu-latest
    steps:
      # 拉取代码
      - name: Checkout
        uses: actions/checkout@v2
        with:
          persist-credentials: false

      # 打包静态文件
      - name: Build
        run: npm install && npm run build

      # 部署
      - name: Deploy
        uses: Judeyq/github-pages-deploy-action@releases/v3
        with:
          # GitHub 密钥
          ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
          # GitHub Pages 读取的分支
          BRANCH: gh-pages
          # 静态文件所在目录
          FOLDER: dist