Skip to content

Git Workflow

代码同步

pull 和 fetch

pull 拉取(fetch + merge)

git pull 命令会获取远程最新的内容并合并到本地。

  • 该方式需要解决代码冲突
  • pull = fetch + merge

fetch 抓取

git fetch 命令会获取远程的更新,但不会自动合并。

  • 这种方式可以只看远程的更新,暂时不解决冲突
  • 更安全

clone

克隆指定分支

大型项目中,克隆指定分支的速度远高于克隆整体

sh
git clone -b <分支> --single-branch <仓库地>

临时保存本地更改

git stash 命令可以临时保存当前工作目录的更改(已暂存和未暂存),而不需要提交。

bash
git stash  # 保存已暂存和未暂存的更改

git stash -k  # 或 --keep-index 保存未暂存的更改

git stash list  # 列出所有 stash

git stash apply  # 应用最近的 stash,但不从列表中删除

git stash apply stash@{n}  # 应用指定的 stash。n 是 stash 的索引,stash@{0} 为最新

git stash pop  # 弹出最近的 stash

git stash drop stash@{n}  # 删除指定的 stash

git stash clear  # 清空所有的 stash

远程仓库版本回退

需求

需求:将提交的代码推送后,想要撤回本次的修改。

主要分为两种方式:

  • revert
  • reset + 强制推送

git revert

该方式特点:

  • 不改写提交历史
  • 适合团队协作
  • 在提交历史上生成一次“撤销提交”
bash
git revert <提交对应的哈希值(可在 git log 中查看>

git push origin <branch-name>

git reset + 强制推送

该方式特点:

  • 改写提交历史
  • 删除这次提交,确保其他人没有基于该提交开发
  • 远程允许强制推送
bash
git reset --hard <提交对应的哈希值(可在 git log 中查看>

git push origin <branch-name> --force

如有转载请标注本站地址