如何拉取远程main分支代码至本地,且无需提交本地变更?
解决方案
1. 重置本地main分支与远程完全同步
先拉取远程最新代码,然后强制重置本地main到远程main的状态,彻底清除本地main的异常变更:
git fetch origin git checkout main git reset --hard origin/main
执行后本地main会和远程main完全一致,解决工具栏显示的推送/拉取计数异常问题。
2. 恢复变更并基于最新main重建feature分支
情况一:原feature分支仍存在
直接切换到原feature分支,将其变基到最新的main上:
git checkout your-feature-branch git rebase main
处理变基过程中出现的冲突,完成后即可基于该分支创建新的Pull Request。
情况二:原feature分支已删除
通过提交日志找到原PR的提交哈希,新建分支并将这些提交 cherry-pick 到基于最新main的新分支上:
# 查看提交历史,定位原PR的提交哈希 git log --oneline # 基于main新建feature分支 git checkout -b new-feature-branch main # 把原PR的提交逐个复制到新分支 git cherry-pick <commit-hash-1> <commit-hash-2> ...
如果原PR的提交是连续区间,可简化为:
git cherry-pick <起始提交哈希>..<结束提交哈希>
3. 清理本地缓存(可选)
若仍存在状态显示异常,执行以下命令清理本地未跟踪文件和暂存区:
git clean -fd git reset
内容的提问来源于stack exchange,提问作者Optiq
相关产品推荐
相关产品推荐

