1、误删分支 恢复方法
强制删除了一个分支(本地+远程)而后又想重新使用这个分支,该怎么找回该分支上的代码呢?
比如删除了test本地和远程分支,此时在master分支上
-
git log -g 显示已经commit信息
-
如果commit的内容过多的话,我们可以进行过滤查找:
- git log -g --author="xx@kanzhun.com" // 根据用户名过滤,模糊匹配
- git log -g --grep "xx" // 根据commit时候的提交信息查找,模糊匹配
-
-
根据commit信息找到对应的commitId
-
git branch [新分支] commitId
2、停止git合并
有些情况,我们想终止合并,还原到合并之前的状态,vscode中没有找到相关复原功能
git merge --abort 可以停止合并 => 即使中间已经做了合并处理,也会恢复到合并之前的状态
3、远程仓库回滚
一定要前提做好分支备份,以防操作失误造成代码丢失
删除最后一次提交记录
git revert HEAD // 销前一次 commit
git push origin master
revert和reset的区别
-
revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在
-
而reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。
备注:
- git revert HEAD 撤销前一次 commit
- git revert HEAD^ 撤销前前一次 commit
- git revert commitId (比如:369dfed)撤销指定的版本,撤销也会作为一次提交进行保存。
- git revert HEAD~1 表示撤销最近两次提交,因为撤销的不是最近一次提交,那么代码一定会有冲突,合并代码只需要把当前的代码全部去掉,保留之前版本的代码就可以了
删除历史某次提交
1、git rebase -i "commitId"^ // 需要注意最后的^,它表示包含本次的提交
会弹出交互式命令,删除不需要的commitid(可以是多个)
pick:可以更改提交顺序、删除提交
2、git push origin master -f