3

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

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

应该做的:

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

实际上做了什么:

只是拿了文件并在其中启动了一个干净的本地 git repo (master) 并进行了几次提交。

我想做的事:

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

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

谢谢!

4

2 回答 2

3

好吧,您可以尝试以下方法(您可能希望使用与 不同的名称origin,取决于您):

  1. git remote add origin url_of_project_repository
  2. git fetch origin
  3. git rebase FETCH_HEAD

您有很大的机会 git 实际上会计算出您的基础,而新远程实际上是同一组文件,并且会通过跳过除您的更改之外的任何内容来解决虚假的合并冲突。

如果这不能正常工作,您也可以在其他地方克隆“真实”存储库,然后在其上重新应用您的更改(并且有无数种方法可以做到这一点,从非常手动的 DIY 方式到一些更自动化的手段)。

于 2012-04-20T13:05:19.263 回答
2

您可以将您的仓库作为远程仓库添加到原始仓库,获取提交,然后尝试重新设置基准。

于 2012-04-20T13:05:21.890 回答