Git斜杠分支错误和恢复

时间:2018-09-30 03:12:47

标签: git git-bash atlassian-sourcetree aws-codecommit

使用Git,我创建了一个本地分支“ Development / TOTS”,并尝试将其推送到远程仓库。

已经有一个名为“ Development”的远程分支,在推送后出现了这个错误:

$ git push origin Development/TOTS Total 0 (delta 0), reused 0 (delta 0) To https://git-codecommit.ap-southeast-2.amazonaws.com/v1/repos/my_repo * [new branch] Development/TOTS -> Development/TOTS error: update_ref failed for ref 'refs/remotes/origin/Development/TOTS': cannot lock ref 'refs/remotes/origin/Development/TOTS': 'refs/remotes/origin/Development' exists; cannot create 'refs/remotes/origin/Development/TOTS'

然后我匆忙/不明智地在SourceTree GUI中尝试了相同的推送。使用此方法没有明显的错误。

“开发”分支的所有者现在说,他们试图从该分支中​​提取错误。

但是我仍然可以在远程仓库(AWS代码提交控制台)和另一个本地仓库(一天之前)中看到它们的“ Development”分支。 “开发”中的代码看起来很旧。那么想知道我是否有可能通过推动“开发/ TOTS”来删除其近期历史的一部分?

如果我删除“ Development / TOTS”分支,他们的Development分支会回到原来的状态吗? (即没有拉出错误)。

我查看了Using the slash character in Git branch name,但“开发”分支仍然存在于远程的事实似乎与建议不符。

谢谢。

1 个答案:

答案 0 :(得分:0)

  

所以想知道我是否有可能通过推动“开发/ TOTS”来删除其近期历史的一部分?

不。即使您拥有,该代码仍将出现在remote repo reflog中。

在AWS Codecommit控制台中:

  • git branch检查那里有什么分支。
  • 还要检查reflog,以查看最新的Development分支提交。
  • 尝试并删除该Development/TOTS分支(在远程服务器端)(如果它与git branch -d Development/TOTS存在)