如何恢复本地分支删除

时间:2015-05-15 16:49:19

标签: git

我创建了一个本地分支并推送到服务器:

$ git branch -D feature

如果我删除了这个分支:

$ git pull
Current branch master is up to date.
$ git branch
* master

我如何从远程服务器再次恢复此分支。 我试着用:

enable_testing()

3 个答案:

答案 0 :(得分:2)

如果您强行删除了分支(或被要求),您可能会丢失一些提交。 (相反,成功git branch -d <branch>意味着您拥有的分支已完全合并。)

如果您尚未清除终端,则会看到如下消息:

Deleted branch feature (was <SHA>).

恢复最初来自遥控器的内容很简单......

git checkout feature

以上将自动创建远程跟踪分支。

但是,如果您需要恢复旧分支,因为有未更改的更改,您需要再做一些。

git checkout <SHA>
git checkout -b feature
git branch -u origin/feature

以上将:

  • 让你处于一个独立的HEAD状态
  • 创建一个名为feature
  • 的分支
  • 将您所在的分支(此时,功能)设置为上游origin/feature

答案 1 :(得分:2)

正如GianArb所说,你可以简单地再次检查远程分支,但是,如果你做了你没有推送的本地提交,你就不会让它们恢复。

相反,您可以尝试使用git reflog找回其哈希值,然后git checkout $1其中$ 1是您可以找到的潜在最新本地提交哈希,您将处于独立的HEAD状态,因此您之后需要使用git checkout -b new_branch_name分支到新的分支。

答案 2 :(得分:1)

git checkout -b feature origin/feature

原点是你的遥控器:)