从远程Atlassian Stash服务器恢复已删除的(未合并的)分支

7 浏览
0 Comments

从远程Atlassian Stash服务器恢复已删除的(未合并的)分支

如果我运行git branch -d XYZ,有办法恢复分支吗?有办法回到我还没有运行删除分支命令的状态吗?

0
0 Comments

问题的原因是用户在Atlassian Stash服务器上意外删除了一个未合并的分支,导致丢失了一周的工作。解决方法是使用gitk命令来恢复被删除的分支。

文章如下:

如果你喜欢使用图形界面,你可以使用gitk来完成整个操作。

gitk --reflog

这将允许你查看分支的提交历史,就好像该分支从未被删除过一样。现在,只需右键单击最新的提交到该分支的提交,然后选择菜单选项"Create new branch"。

谢谢,我之前不知道这个方法。当你在几天前删除了一个分支,几周都没有检查过,不记得它的名称,并且没有shell历史记录...这个方法真是救了我。

非常感谢,我差点丢失了一周的工作。

0
0 Comments

原因:在Atlassian Stash服务器上意外删除了一个未合并的分支。

解决方法:使用以下命令恢复删除的分支:

1. 执行git reflog --no-abbrev,找到被删除分支最新提交的SHA1值。

2. 执行git checkout [sha]切换到该提交。

3. 执行git checkout -b [branchname]重新创建分支。

如果是在SourceTree中进行了删除操作,可以通过以下步骤找到SHA1值:

1. 点击菜单栏的View,选择Show Command History。

2. 找到Deleting branch命令,并查找"Deleted branch <branch-name> (was <sha>)"的消息。

如果是在GitKraken中进行了删除操作,可以在Activity Log中找到类似于"Delete ref <branch> at <sha>: finished."的记录。

另外,还可以尝试使用git switch -c <new_branch_name>命令来替代git checkout -b <your-branch> <sha>命令,这是一个相同的命令,只是名称不同。

这个方法可以解决意外删除未合并分支的问题,对于一些用户来说,这个方法真的救了他们的命。

0