请帮帮我!我犯了一个愚蠢的错误。当我点击此链接时:http://docs.openstack.org/infra/manual/developers.html
我创建了一个新分支并对Gerrit视图进行了更改。在一个愚蠢的时刻,我用命令git branch -D mybranch
然后我还删除了克隆到我电脑的projectname:sudo rm -rf projectname
(项目名称来自命令:git clone https://git.openstack.org/openstack/<projectname>
)
现在我想恢复项目名称以继续进行更改。我看到OpenStack gerrit仍然显示删除分支的更改。请帮我恢复。
由于
答案 0 :(得分:2)
git branch -D mybranch
此命令删除本地分支(仍然可以恢复。我们稍后会介绍 - 下一段)
sudo rm -rf projectname
OOPS
...您刚刚删除了存储库和已删除分支的本地数据(因此您无法再在本地恢复)
What else can you do to recover it?
强> 我看到OpenStack gerrit仍然显示已删除分支的更改
看起来您的远程存储库上有分支 克隆项目,检查分支并继续工作。
# Clone the project
git clone <url>
# checkout the desired branch
git checkout <branch>
您有最新的代码已提交(并推送)您的本地更改已消失...
答案 1 :(得分:0)
我是OpenStack的核心开发人员,这是一个非常简单的解决方案,用于恢复此类已上传但尚未批准的补丁,让我们举个例子:
我有一个补丁已经推送到gerrit:https://review.openstack.org/#/c/309710/
我的本地工作直接是:/ opt / stack / aodh,分支名称是:fix-some-bug
然后由于某种原因我永久删除了工作目录,但是如果你有关于gerrit的代码>>很容易恢复
cd /opt/stack && git clone https://github.com/openstack/aodh && cd aodh
现在,打开一个网页浏览器,进入gerrit网页,找到你的补丁:https://review.openstack.org/#/c/309710/,右上方有一个小的下拉按钮,名为“下载”,点击它并选择第一个,结帐一个,然后点击右侧的小黑色按钮,这将把网址复制到你的粘贴板
现在,切换到你的shell窗口,只需粘贴它:
git fetch https://git.openstack.org/openstack/aodh refs/changes/10/309710/1 && git checkout FETCH_HEAD
您的补丁将被下载,您应该按照shell提示进行结帐:git checkout -b fix-some-bug
以便您稍后切换到另一个分支而不会丢失您的代码
现在,你可以继续工作,欢呼!
PS:用你的真实替换所有例子