Git 奇技淫巧

git 当上游发生squash时更新本地仓库的命令

git pull --rebase

git 创建空分支

git checkout --orphan branch_name

git 放弃本地所有修改

  1. 清除所有修改的文件

    git checkout .
  2. 清除所有新建的文件及文件夹

    git clean -df
  3. 撤销 git add 部分

    git reset .

git squash

  1. 选择需要的commit往前位id

    git rebase -i commitid
  2. 修改需要squash的提交并将根据需要其修改之前的pick
    此为对照表

    称呼简称解释
    ppick使用提交
    rreword使用提交,但编辑提交消息
    eedit使用提交,但停止修改
    ssquash使用提交,但融合到之前的提交中
    ffixup像 "squash",但丢弃这个提交的日志消息
    xexec使用 shell 运行命令(该行的其余部分)
    ddrop移除提交

git 重新拉取上游源码

  1. 设置上游分支

    git remote add upstream git@github.com:username/Repo.git
  2. 获取上游代码

    git fetch upstream
  3. 切换到upstream/main分支

    git checkout -B target_Repo upstream/target_Repo
  4. 强制提交

    git push -f origin target_Repo

git 以远程仓库覆盖本地

git reset --hard HEAD
git pull

或者

 git fetch origin target_Repo
 git reset --hard origin/target_Repo