如何将新的git存储库从另一个repo更改为分支?

时间:2012-04-20 13:00:39

标签: git repository parent rebase

我将第三方项目下载为非跟踪文件(没有.git文件夹)并启动了一个新的git存储库,其中包含$git init,以跟踪我的更改。

我后来发现这个项目已经有一个公共git存储库,它与我下载的裸文件具有相同的状态(与我的初始提交相同)。

应该完成

克隆远程仓库并创建一个新的本地分支,然后将其推送到远程。

实际做了什么:

刚刚获取文件并在其中启动了一个干净的本地git repo(master)并进行了多次提交。

我想做什么:

将我的本地初始提交转换为远程仓库的一个分支(更改其父级)并保留我已经完成的更改。

我想这应该是可能的,但我不太了解Git。

谢谢!

2 个答案:

答案 0 :(得分:3)

好吧,您可以尝试以下操作(您可能希望使用与origin不同的名称,由您决定):

  1. git remote add origin url_of_project_repository
  2. git fetch origin
  3. git rebase FETCH_HEAD
  4. 你有很大的机会git实际上会计算你的基础,而新的遥控器实际上是同一组文件,并且会通过跳过除你的更改之外的任何东西来解决假合并冲突。

    如果这不起作用,你也可以在其他地方克隆“真正的”存储库,然后在它上面重新应用你的更改(并且有很多方法可以做到这一点,来自一个非常手动的DIY一些更自动化的方式)。

答案 1 :(得分:2)

您可以将您的仓库作为远程存储添加到原始仓库,获取提交,然后尝试重新绑定。