更改原始远程URL(已移动)并执行git update
后,我发现自己拥有一个每次提交的回购协议branch double(直到我上一次获取之前的点)。但是,gitk显示了一个共同的初始祖先(回购的“开始”)。
文件FETCH_HEAD包含24个条目。是否有任何git命令可以恢复我在获取之前的repo?
小细节信息:我的本地仓库只从一个遥控器提供,并且自己的分支被推送到另一个遥控器。
答案 0 :(得分:1)
听起来好像回购被移动时,所有历史都丢失或被修改(不同的sha-1哈希意味着git不知道共同的祖先),因为我认为你的意思是git pull而不是git更新。
如果您对任何文件没有任何损失,或者您没有做任何更改(最好先在分支中执行此操作并查看它是否符合您的要求),您可以尝试以下内容:
git checkout -b tmaster
git reset --hard origin/master
现在检查一切是否正确,如果是这样,请删除master
分支并将tmaster
重命名为master
。
你所创建的任何分支仍然会有与之关联的旧历史记录,你必须创建新的分支,然后cherry-pick
逐个提交你所做的提交,这些提交是在origin的主人之上进行的更改
首先我也会跑
git remote update --prune
git fetch --all
答案 1 :(得分:0)
(优先项目需要很长时间) - 新信息:有人告诉我们新的repo URL的历史已经被重写了。我打开一个更合适的新标题。