3

所以在一个理想的世界里,当我开始这个项目时,我会从一个源克隆,然后将我所有的更改提交到这个 repo。当主项目更新时,我可以将这些更改拉入我的仓库。(这是一种单向交通,没有推动。)

然而,当我开始时,我并没有克隆,而是简单地下载了一个已发布的 ZIP 代码,解压缩,然后做了一个git init. 此后,我已将所有更改提交到此代码副本。但是,主代码库现已更新,但由于我的副本不是合并,而是我自己的相同基本代码的仓库,我无法将主代码库的更改合并到我的。

有什么方法可以将这些更改从主代码中获取到我的仓库中,而无需重新开始?

4

3 回答 3

3

您可以通过在远程更改之上重新调整私有存储库的更改来修复存储库。

  • 向您的存储库添加一个包含正确远程 git URL 的新远程。
  • 从该远程获取以获取所有正确的远程提交到您自己的存储库
  • 用于git rebase在远程提交之上移植您的提交。
  • 将您的分支合并到远程分支。

这将是这样的:

cd $your_git_repository
git remote add origin $URL
git fetch origin
git branch -m my_branch
git rebase --onto $base_commit $your_first_commit my_branch
git merge $remote_branch
git log --graph --decorate --oneline

$base_commit与您首先下载的 zip 对应的提交在哪里,并且$your_first_commit是您将提取的 zip 文件提交为的提交。

于 2013-10-11T16:14:26.977 回答
0

最简单的方法 - 将最新版本的代码克隆到folderA. 假设您在folderB. 将folderB内容复制到folderA. 提交更改。推!

于 2013-10-11T15:54:14.747 回答
0

假设您在分支主机上,您也可以这样做:

git remote add origin
git pull --allow-unrelated-histories origin master

然后合并两个仓库。

如果您有更多分支,请使用git merge相同的--allow-unrelated-histories标志

于 2019-05-09T14:03:37.307 回答