场景描述
- 团队合作,有人把不再需要用的远程分支删掉了,而自己本地分支还存在
- git remote show origin 查看本地分支与远程分支对应情况
- git remote prune origin 如果远程某一个分支已经删除,但是本地还有,可以使用此命令以更新
- 自己再本地的某一个文件修改不需要提交
- git rm --cache fileName 本地修改已经保存到暂存区,从暂存区取消修改
- git checkout -- fileName 本地修改还未保存到暂存区可以使用
- 自己本地有文件修改了,调用了一个公共组件,同伴更新了该组件,你需要拉取最新代码,但是,pit pull失败了,要求先提交本地修改
- 先 git stash,储藏起来
- 然后就可以正常pull最新代码了
- pull完成之后,再把储藏起来的拿出来用。git stash apply就可以了
- 如果你想移除某一次的储藏,可以用git stash drop stashName
- git stash list可以查看当前储藏列表,更详细的可以看git官网,解释的很专业
- 先 git stash,储藏起来
技术解析
- 相信了解过git的程序猿们都知道git有工作区、暂存区、和提交之后的版本库,我们在工作区修改文件之后,可以使用git add添加到暂存区
- 既然可以添加,就可以撤回
git reset HEAD fileName
命令可以把文件撤回到工作区,接着就可以用git checkout -- fileName撤销文件的修改了
- 既然可以添加,就可以撤回
- 那如果我们已经commit提交到本地版本库了,也可以撤回
- git log 查看commit记录
- 找到需要撤销到的commit_id
- git reset -hard commit_id,完成撤销
- 如果不需要将代码恢复到commit_id对应的版本,就不进行恢复代码操作就行,接下来就可以正常的git提交流了