lui*_*sgo 49 git github git-branch
我想知道是否有办法在github中恢复远程删除的分支.历史记录清楚地记录了分支并与其他分支合并,但我不确定是否可以恢复已删除的分支.
谢谢.
Hig*_*ife 53
是的,可以从git恢复已删除的分支.
如果您在过去30天内在本地git仓库中拥有分支,您可以使用以下内容在reflog中找到它:
git reflog
Run Code Online (Sandbox Code Playgroud)
在reflog中搜索分支名称并记下HEAD{x}点或提交ID.
git checkout -b branch_name HEAD@{27}
Run Code Online (Sandbox Code Playgroud)
您可以签出提交ID并从该提交点创建分支:
git checkout -b branch_name <commit id>
Run Code Online (Sandbox Code Playgroud)
Von*_*onC 10
可以请求GitHub支持并让他们查看reflog您的远程仓库(例如在此线程中).
如果从删除开始足够接近(每个默认值少于30天),则reflog仍然包含任何分支不再引用的提交.
在其中一个提交上创建分支允许再次访问它们.
有关reflog的更多信息,请参阅" 什么是reflog,为什么它如此重要? "
更新:repo所有者还可以查询GitHub EVents API:
请参阅" GitHub是否记得提交ID? "
这有点绕,但这里是如何做到的。
如果您还没有个人访问令牌,请从“个人资料”/“设置”/“开发人员设置”/“个人访问令牌”中获取一个新的个人访问令牌。
curl -u "username:PersonalAccessToken" -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/RepoOwner/Repo/events
Run Code Online (Sandbox Code Playgroud)
在响应中找到DeleteEvent;在那里您将能够找到您删除的分支的孤立 SHA。
git fetch SHA
git switch -c name-of-your-deleted branch
Run Code Online (Sandbox Code Playgroud)
问题解决了。
如果分支已被删除很长时间(在我的情况下为 1 年),但您已经为该分支打开了拉取请求,您可以通过在拉取请求历史记录中搜索来恢复它。
一旦我找到该分支的拉取请求,我就可以恢复该分支。相关的提交信息等也可以从拉取请求中获得。
| 归档时间: |
|
| 查看次数: |
47213 次 |
| 最近记录: |