执行git checkout master后工作目录未恢复,仍显示特性分支修改如何解决
你执行git pull origin master无效的原因是当前本地master提交进度领先于远程master,pull默认执行的合并操作不会覆盖你本地领先的提交,因此工作目录不会变动。按照以下步骤操作即可将DEV机工作目录同步为远程master分支的内容:
前置检查
执行git status确认当前没有未提交的工作进度,如果有未提交的改动需要保留,先执行git stash暂存,后续可以切回特性分支后执行git stash pop恢复进度。
操作步骤
- 拉取远程仓库最新状态,不会修改本地分支和工作目录:
git fetch origin - (可选)核对远程master的提交记录和GitHub上的状态一致,确认没有问题再执行后续操作:
git log origin/master --oneline - 强制将本地master分支、暂存区、工作目录全部重置为和远程master完全一致的状态:
git reset --hard origin/master - (可选)如果担心本地内容误删,可以先给当前本地master打临时备份标签:
git tag tmp_local_master_backup
后续确认无需恢复备份可以删除标签:git tag -d tmp_local_master_backup
注意:
git reset --hard为高危操作,执行前请确认本地master分支上没有需要单独保留的提交内容。
操作完成后执行git status即可看到当前分支和origin/master完全同步,工作目录也会恢复为远程master分支对应的状态。
内容的提问来源于stack exchange,提问作者davpeterson
相关产品推荐
相关产品推荐

