Git 斜线分支错误及恢复
Git slash branch mistake and recovery
使用 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'
然后我 hastily/unwisely 在 SourceTree GUI 中尝试了相同的推送。使用此方法没有明显错误。
"Development" 分支的所有者现在说他们在尝试从中提取时遇到错误。
但我仍然可以在远程仓库(AWS codecommit 控制台)和另一个本地仓库(早一天)中看到他们的 "Development" 分支。 "Development" 中的代码看起来很旧。所以想知道我是否有可能通过 "Development/TOTS"?
的推动删除了它的部分近期历史记录
如果我删除我的 "Development/TOTS" 分支,他们的 Development 分支会恢复到原来的样子吗? (即没有拉错误)。
我查看了 Using the slash character in Git branch name,但 "Development" 分支仍然存在于远程的事实似乎与建议不符。
谢谢。
So wondering is there a chance I've deleted part of its recent history by my push of "Development/TOTS"?
没有。即使您有,该代码仍会出现在 remote repo reflog.
中
在 AWS codecommit 控制台中:
- 检查
git branch
有哪些分支。
- 同时检查 reflog,以查看最新的
Development
分支提交。
- 尝试删除
Development/TOTS
分支(在远程服务器端),如果它确实存在 git branch -d Development/TOTS
使用 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'
然后我 hastily/unwisely 在 SourceTree GUI 中尝试了相同的推送。使用此方法没有明显错误。
"Development" 分支的所有者现在说他们在尝试从中提取时遇到错误。
但我仍然可以在远程仓库(AWS codecommit 控制台)和另一个本地仓库(早一天)中看到他们的 "Development" 分支。 "Development" 中的代码看起来很旧。所以想知道我是否有可能通过 "Development/TOTS"?
的推动删除了它的部分近期历史记录如果我删除我的 "Development/TOTS" 分支,他们的 Development 分支会恢复到原来的样子吗? (即没有拉错误)。
我查看了 Using the slash character in Git branch name,但 "Development" 分支仍然存在于远程的事实似乎与建议不符。
谢谢。
So wondering is there a chance I've deleted part of its recent history by my push of "Development/TOTS"?
没有。即使您有,该代码仍会出现在 remote repo reflog.
中在 AWS codecommit 控制台中:
- 检查
git branch
有哪些分支。 - 同时检查 reflog,以查看最新的
Development
分支提交。 - 尝试删除
Development/TOTS
分支(在远程服务器端),如果它确实存在git branch -d Development/TOTS