一、拉取最新master分支覆盖本地仓库
1, cd进入本地仓库,切换master分支
bash
# 进入仓库
cd 仓库目录
# 切换master分支
git checkout master
2, 获取远程 master 的最新信息
bash
git fetch origin
3, 强制覆盖本地 master 分支
使用 reset 命令将本地 master 强制重置为远程 master 的最新版本(此操作会彻底删除本地所有未提交的修改和未推送的提交,请务必确认无需保留本地内容)
bash
git reset --hard origin/master
二、拉取远程非master分支最新内容
1,本地存在该分支(即完全替换为新内容)
如果本地已有该分支,但想放弃本地所有修改,完全同步远程最新内容,执行以下命令:
假设该分支叫Huayang
bash
# 1. 切换到目标分支
git checkout Huayang
# 2. 拉取远程分支最新内容(保留本地未提交修改,若需完全替换则用后续步骤)
git pull origin Huayang
# (可选)若需完全替换本地内容(放弃所有本地修改),执行:
git fetch origin Huayang
git reset --hard origin/Huayang
2,本地不存在该分支
如果本地没有该分支,需先创建本地分支并关联远程分支,再拉取最新内容:(一般起同名)
这里推荐方法二,
bash
# 方式一:直接创建并切换到本地分支,同时关联远程分支
git checkout -b <本地分支名> origin/<远程分支名>
# 方式二:分步操作
git fetch origin <远程分支名> # 拉取远程分支信息到本地
git checkout <本地分支名> # 创建并切换到本地分支(本地分支名通常与远程一致)
# 拉取远程分支最新内容
git pull origin <远程分支名>
三、强制推送本地分支覆盖远程master分支
master 分支历史混乱(多次无效提交、合并冲突残留),本地通过变基(rebase)整理后,需要强制推送覆盖远程,统一历史。
项目重构后,本地指定分支的代码更稳定、功能更完整,决定放弃原 master 的历史,直接用 该分支 的内容作为新的 master 基准。
远程 master 包含错误提交(如敏感信息、错误代码),本地通过 git reset 或 git rebase 撤销了这些提交,导致本地 master 历史与远程不一致,需要强制推送同步修正。
注意:强制推送会永久覆盖远程
master的历史记录,如果操作不当,可能导致团队成员的代码丢失或冲突
1,本地分支是 master
bash
git push origin master --force
(--force 是强制推送的核心参数,会无视本地与远程的历史差异,直接覆盖远程)
2,本地分支是 master
bash
git push origin <本地非master分支名>:master --force
例:本地分支叫 Huayang
git push origin Huayang:master --force