有没有,git创建无意中名字起错了,分支上传错了,想删除了?删除做了想恢复了?远程与本地都删除了要恢复的情况呢?如果有,那么一下内容获取你会感兴趣。
删除分支
有的时候可能会遇到需要删除git的branch的情况,那么要如何去删除呢,删除分支可以分为2种情况。
删除本地分支(git branch -D branchName)
删除服务端分支 (git push origin –delete branchName)
第一种情况
当出入删除本地分支命令时,bash中会返回如下内容1
2$ git branch -D trunk.201705
Deleted branch trunk.201705 (was 9cc0374).第二种情况
当决定删除服务端分支时,一定要慎重,bash中会返回如下内容1
2
3
4$ git push origin –delete trunk.201705
remote: Updating references: 100% (1/1)
To http://source.jd.com/app/webpack-scaffold.git
– [deleted] trunk.201705
恢复分支
当你只删除本地的时候,可以重新从git服务器上clone一份,大家也都会如此操作,但是,如果你无意中把服务器端的所有分支都删除掉了,那要如何来恢复呢?因为分支删除后,git中是不存在提交记录查询的了。如果真有次误操作,大家不要着急,恢复方法如下:
第一步,输入命令
1 | $ git log -g |
提交记录的备注1
2
3
4
5commit 77bd9ed5507a774e579f67e348e338093dd68252
Reflog: HEAD@{1} (Git账号<Git密码>)
Reflog message: checkout: moving from master to trunk.201704
Author: Git账号 <Git密码>
Date: Thu May 25 11:21:06 2017 +0800
提交记录的备注
此命令会从本地的代码库中查询到你的所有提交记录
第二步:还原到对应的commit代码中去,蓝色的内容为commit-id,可以通过此ID来指定恢复的版本,使用如下命令
1 | $ git branch trunk.201704 77bd9ed5507a774e579f67e348e338093dd68252 |
此命令会在对应的项目中创建一个分支,名字为trunk.201704,此分支的代码为后面commit-id对应的代码内容。
第三步: 查看一下分支内容吧,
1 | $ git branch -a |
是不是发现本地多了一个分支。
第四步:那么可以将此代码上传到服务器了,可以在服务器端新建一个分支,然后清空,将还原的分支内容copy进去,在push,则可以成功的还原到之前的版本了。
当然大家在操作的时候,切记要慎重,不要轻易删除git服务端的分支代码。
PS:以上代码块内容中标红内容为命令,其他内容为执行命令后的返回内容。