如何将分叉的存储库历史记录与主存储库同步?

How can I syn the forked repository's history with the main one?

我是 git 的新手,我刚刚分叉了一个存储库并对其进行了一些更改。一段时间后,主存储库的历史发生了变化。我怎样才能使这两个回购具有相同的历史记录?

我知道如果历史不一样,拉取请求会有问题。

您可以通过 3 种方式做到这一点:

  1. 您可以将上游(例如 github 上的存储库)与当前分支合并,这样您就可以毫无问题地将更改推送到上游。

做一个 git fetch 然后你会想要将你获取的内容与你当前的工作分支合并,如果你在 master 上,可以用 git merge origin/master 来完成。然后,在提交更改并将更改推送到上游之前,您可能需要解决合并冲突。

  1. 您可以创建一个分支并在那里提交您当前的更改,然后拉上游以使您的主分支保持最新,然后在您的机器上将您的新分支合并到您的主分支中,然后推送更改或使用您的存储库的网络经理的工具(例如:github 拉取请求),此请求uires 表明两个分支之间没有冲突。

对于这个,首先使用 git checkout -b <branch name> 分支,然后提交并推送您的更改。在那之后,如果你想在你的机器上做它,你必须用与第一种方法相同的步骤更新 master,只需通过 git checkout master 确保你在 master 上。之后,您可以将您在另一个分支上所做的更改合并回 git merge <branch name>。修复合并冲突,然后提交并推送。如果你想在 github 或你选择的网络回购上这样做,如果有合并冲突,你必须首先将 master 合并到你的新分支:git fetch 然后 git merge origin/master,修复冲突,提交并推送,然后使用网络 ui 执行 pull/merge 请求。

  1. 您可以存储您的更改,更新您的分支,然后从存储中取回您的更改

使用 git addgit stash 进行更改,然后像第一种方法一样将本地分支更新到上游,然后使用 git stash pop,解决冲突,提交,然后推.