我做了一件蠢事……
- I fork在 GitHub 上发布了一个存储库。
- 我做了一些改变,commit把它们放在我的叉子上。
- 我将此提交作为拉取请求回到原来的仓库。
- 愚蠢的部分来了:我deleted 我的叉子。
原始存储库的所有者要求在接受拉取请求之前对我的代码进行一些更改,我很乐意这样做。
我尝试重新分叉存储库,但我无法从拉取请求中签出提交,它甚至不存在“unlinked”提交(不属于任何分支或标签的提交,我不知道官方术语).
我的问题是:我怎样才能恢复提交作为拉取请求发送?
如果没有办法,可以选择在新提交中重新进行更改,但拉取请求将会丢失。
我的问题不是关于不丢失提交中的更改,而是关于不丢失git 历史记录,意味着保留提交的SHA1(以及我可能不知道的其他事情)。
有可能fetch将请求拉取到本地计算机 https://help.github.com/articles/checking-out-pull-requests-locally.
如果没有指向相关拉取请求的链接,则很难测试这是否有效,但您可以尝试
- 创建存储库的新分支,
- 克隆你的新叉子,
-
fetch
来自上游存储库的拉取请求,
git remote add upstream https://github.com/User/repository.git
$EDITOR .git/config
# Add `fetch = +refs/pull/*/head:refs/remotes/upstream/pr/*` to
# the relevant section, as outlined in the linked page. Note that
# we use `upstream` instead of `origin` as the target.
git fetch upstream
-
merge
将请求拉入本地存储库,例如
git checkout master
git merge --ff-only upstream/pr/1
进而push
它回到你的新叉子上。
如果失败,您可以向 GitHub 提交支持请求,要求他们恢复您的存储库。来自一个有关安全的常见问题解答 https://help.github.com/articles/github-security#file-system-and-backups:
当用户删除存储库时,我们不会追溯性地从备份中删除存储库,因为如果存储库被意外删除,我们可能需要为用户恢复存储库。
要启动此过程,联系他们的支持团队 https://github.com/contact尽快地。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)