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