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