首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git:恢复已删除的(远程)分支

Git:恢复已删除的(远程)分支
EN

Stack Overflow用户
提问于 2010-01-03 02:30:19
回答 9查看 122K关注 0票数 108

我需要恢复我在推送过程中以某种方式删除的两个Git分支。

这两个分支是在不同的系统上创建的,然后被推送到我的“共享”(github)存储库。

在我的系统上,我(显然)在fetch期间检索了分支:

代码语言:javascript
复制
~/myfolder> git fetch
remote: Counting objects: 105, done.
remote: Compressing objects: 100% (58/58), done.
remote: Total 62 (delta 29), reused 0 (delta 0)
Unpacking objects: 100% (62/62), done.
From github.com:mygiturl
 * [new branch]      contact_page -> origin/contact_page
   731d1bb..e8b68cc  homepage   -> origin/homepage
 * [new branch]      new_pictures -> origin/new_pictures

在那之后,我做了一个推送,将我的本地更改发送到中央存储库。由于某种原因,这些分支被从我的本地系统和中央存储库中删除:

代码语言:javascript
复制
~/myfolder> git push
Counting objects: 71, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (43/43), done.
Writing objects: 100% (49/49), 4.99 KiB, done.
Total 49 (delta 33), reused 0 (delta 0)
To git@github.com:mygiturl.git
 - [deleted]         contact_page
 + e8b68cc...731d1bb homepage -> homepage (forced update)
   bb7e9f2..e0d061c  master -> master
 - [deleted]         new_pictures
   e38ac2e..bb7e9f2  origin/HEAD -> origin/HEAD
   731d1bb..e8b68cc  origin/homepage -> origin/homepage
   e38ac2e..bb7e9f2  origin/master -> origin/master
 * [new branch]      origin/contact_page -> origin/contact_page
 * [new branch]      origin/new_pictures -> origin/new_pictures

从它们的出生地机器上删除分支并不是一件非常容易的事情,所以如果可能的话,我想尝试从我的本地恢复它们。

我在谷歌上搜索的所有git“撤销”信息都与恢复丢失的提交有关。我不认为这适用于这里,因为我没有这些分支的提交UID。

我想知道怎么才能把这些拿回来。我还想知道它们最初是如何被删除的,以及我如何在未来避免这种情况。

编辑:应请求,以下是我的存储库配置

代码语言:javascript
复制
user.name=Craig Walker
user.email=github@softcraft.ca
alias.unadd=reset HEAD
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=git@github.com:MyGitURL.git
remote.origin.mirror=true
branch.master.remote=origin
branch.master.merge=refs/heads/master
alias.undo=reset --hard
alias.test=push -f ci HEAD:master
alias.st=status
alias.ci=commit
alias.br=branch
alias.co=checkout
alias.ch=checkout
alias.df=diff
alias.lg=log -p
alias.who=shortlog -s --
remote.ci.url=ContinuousIntegrationGitURL
remote.ci.fetch=+refs/heads/*:refs/remotes/ci/*
branch.photo.remote=origin
branch.photo.merge=refs/heads/photos
remote.foo.url=FooGitURL
remote.foo.fetch=+refs/heads/*:refs/remotes/cynthia/*
branch.homepage.remote=origin
branch.homepage.merge=refs/heads/homepage
EN

Stack Overflow用户

发布于 2017-06-23 22:59:56

如果您的组织使用JIRA或其他与git绑定的类似系统,您可以找到工单本身列出的提交,然后单击代码更改的链接。Github会删除该分支,但仍有可供选择的提交。

票数 2
EN
查看全部 9 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1992364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档