我将第三方项目下载为非跟踪文件(没有.git文件夹)并启动了一个新的git存储库,其中包含$git init
,以跟踪我的更改。
我后来发现这个项目已经有一个公共git存储库,它与我下载的裸文件具有相同的状态(与我的初始提交相同)。
我应该完成
克隆远程仓库并创建一个新的本地分支,然后将其推送到远程。
实际做了什么:
刚刚获取文件并在其中启动了一个干净的本地git repo(master)并进行了多次提交。
我想做什么:
将我的本地初始提交转换为远程仓库的一个分支(更改其父级)并保留我已经完成的更改。
我想这应该是可能的,但我不太了解Git。
谢谢!
答案 0 :(得分:3)
好吧,您可以尝试以下操作(您可能希望使用与origin
不同的名称,由您决定):
git remote add origin url_of_project_repository
git fetch origin
git rebase FETCH_HEAD
你有很大的机会git实际上会计算你的基础,而新的遥控器实际上是同一组文件,并且会通过跳过除你的更改之外的任何东西来解决假合并冲突。
如果这不起作用,你也可以在其他地方克隆“真正的”存储库,然后在它上面重新应用你的更改(并且有很多方法可以做到这一点,来自一个非常手动的DIY一些更自动化的方式)。
答案 1 :(得分:2)
您可以将您的仓库作为远程存储添加到原始仓库,获取提交,然后尝试重新绑定。