github是否在历史记录中保留删除的远程分支?若然,可否恢复?
我想知道是否有办法在github中恢复远程删除的分支。历史记录清楚地记录了分支并与其他分支合并,但我不确定是否可以恢复已删除的分支github是否在历史记录中保留删除的远程分支?若然,可否恢复?,git,github,git-branch,Git,Github,Git Branch,我想知道是否有办法在github中恢复远程删除的分支。历史记录清楚地记录了分支并与其他分支合并,但我不确定是否可以恢复已删除的分支 谢谢。可以请求GitHub支持,并让他们查看您的远程回购()的。 如果距离删除足够近(每个默认值少于30天),reflog仍然包含不再被任何分支引用的提交。 通过在其中一个提交上创建分支,可以再次访问这些提交 有关reflog的详细信息,请参阅“” 更新:回购所有者还可以查询GitHub事件API: 请参阅“”可以请求GitHub支持,并让他们查看您的远程回购()
谢谢。可以请求GitHub支持,并让他们查看您的远程回购()的。
如果距离删除足够近(每个默认值少于30天),reflog仍然包含不再被任何分支引用的提交。
通过在其中一个提交上创建分支,可以再次访问这些提交 有关reflog的详细信息,请参阅“”
更新:回购所有者还可以查询GitHub事件API:
请参阅“”可以请求GitHub支持,并让他们查看您的远程回购()的。
如果距离删除足够近(每个默认值少于30天),reflog仍然包含不再被任何分支引用的提交。
通过在其中一个提交上创建分支,可以再次访问这些提交 有关reflog的详细信息,请参阅“”
更新:回购所有者还可以查询GitHub事件API:
请参阅“”是的,可以从git还原已删除的分支 查找提交ID:使用git reflog搜索分支 如果您在过去30天内在本地git回购中拥有分支机构,您可以使用以下工具:
git reflog
在reflog中搜索分支名称,并注意头{x}
点或提交ID
从Reflog头点重新创建分支:
从提交ID重新创建分支:
您可以签出提交ID并从该提交点创建分支:
git checkout -b branch_name <commit id>
git签出-b分支机构名称
是的,可以从git恢复已删除的分支
查找提交ID:使用git reflog搜索分支
如果您在过去30天内在本地git回购中拥有分支机构,您可以使用以下工具:
git reflog
在reflog中搜索分支名称,并注意头{x}
点或提交ID
从Reflog头点重新创建分支:
从提交ID重新创建分支:
您可以签出提交ID并从该提交点创建分支:
git checkout -b branch_name <commit id>
git签出-b分支机构名称
git reflog
将向您显示HEAD
的历史记录。如果您删除的分支名为foo
,那么在该输出中,您应该会看到类似48534f5 HEAD@{0}:checkout:moving from master to foo
或48534f5 HEAD@{1}:merge foo:Fast forward
这样的行。您可以搜索git reflog
的输出,找出哪个提交必须是foo指向的最新提交
请务必意识到,删除foo时,“foo”reflog文件本身已被删除,但由于头部的reflog不同,它仍然存在。
git reflog
将向您显示头部的历史记录。如果您删除的分支名为foo
,那么在该输出中,您应该会看到类似48534f5 HEAD@{0}:checkout:moving from master to foo
或48534f5 HEAD@{1}:merge foo:Fast forward
这样的行。您可以搜索git reflog
的输出,找出哪个提交必须是foo指向的最新提交
请务必意识到,“foo”reflog文件本身在删除foo时被删除,但由于头部的reflog不同,因此它仍然存在。请查看此python脚本以了解github事件。
我创建它是为了拉取事件并使其可读,您可以将其导入grep并查找您感兴趣的分支。如果有足够的历史记录,您将看到所讨论的分支的delete事件,下一行将是最后一个推送事件,这就是您感兴趣的sha。看看这个用于github事件的python脚本。
我创建它是为了拉取事件并使其可读,您可以将其导入grep并查找您感兴趣的分支。如果有足够的历史记录,您将看到有关分支的删除事件,下一行将是最后一个推送事件,这就是您感兴趣的sha。当分支已被删除很长时间(在我的情况下,为1年),但您已为该分支打开拉取请求时,您可以通过在pull请求历史记录中搜索来恢复它
一旦找到该分支的拉请求,我就可以恢复该分支。相关的提交信息等也可以从pull请求中获得 当分支已被删除很长一段时间(在我的情况下,为1年),但您已为该分支打开拉取请求时,您可以通过在拉取请求历史记录中搜索来恢复它
一旦找到该分支的拉请求,我就可以恢复该分支。相关的提交信息等也可以从pull请求中获得 这有点绕圈子,但这里有一些方法
从Profile/Settings/Developer Settings/Personal Access Tokens(配置文件/设置/开发人员设置/个人访问令牌)中获取一个新的个人访问令牌(如果您还没有)
curl -u "username:PersonalAccessToken" -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/RepoOwner/Repo/events
在响应中查找DeleteEvent;在那里你可以找到你删除的分支的孤立SHA
git fetch SHA
git switch -c name-of-your-deleted branch
问题已解决。这有点绕圈子,但下面介绍如何解决
从Profile/Settings/Developer Settings/Personal Access Tokens(配置文件/设置/开发人员设置/个人访问令牌)中获取一个新的个人访问令牌(如果您还没有)
curl -u "username:PersonalAccessToken" -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/RepoOwner/Repo/events
在响应中查找DeleteEvent;在那里你可以找到你删除的分支的孤立SHA
git fetch SHA
git switch -c name-of-your-deleted branch
问题已解决。这并不能解决OP的问题。您所做的只是解释一种迂回的方法,以找出您当前签出的提交(无论它是否在分支上)。如果被删除的远程分支没有指向头部,这是没有帮助的