我做了些蠢事......
原始仓库的所有者在接受拉动请求之前请求对我的代码进行一些更改,我很乐意这样做。
我尝试重新分配repo,但是我无法从pull-request中检出提交,它甚至不是作为“unlinked”提交(不属于任何分支或标记的提交) ,我不知道官方术语)。
我的问题是:如何恢复作为拉取请求发送的提交?
如果没有办法,在新提交中重新进行更改是一个选项,但是pull-request会丢失。 我的问题不在于不会丢失提交中的更改,而是关于不会丢失 git history ,这意味着保留提交的 SHA1 (以及我可能不知道的任何其他内容) )。
答案 0 :(得分:9)
可以fetch
pull requests to your local machine。
如果没有相关拉取请求的链接,很难测试这是否有效,但您可以尝试
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提交支持请求,要求他们恢复您的存储库。来自FAQ about security:
我们不会在用户删除时从追踪中追溯删除存储库,因为如果用户意外删除了存储库,我们可能需要为其恢复存储库。
要尽快启动此过程contact their support team。