将fork重置为与当前原始项目(git)相同

将fork重置为与当前原始项目(git)相同,git,Git,我在github.com上做了一个项目。开始写代码。在我自己的分叉版本上提交并推送它。但是,随后原始项目的技术发生了变化,所有文件夹都被删除并创建了新文件夹。我也做了同样的事情,删除了文件夹并创建了新的文件夹和文件,但现在我不能做拉请求,因为它们连接到原始项目的旧版本。如何更新我的fork,使其与当前项目的原始版本相同?您可能希望合并更改或重新开始。合并更改可以这样做: git merge {remote}/{branch} 其中,{remote}是指向上游存储库的git remote(如果g

我在github.com上做了一个项目。开始写代码。在我自己的分叉版本上提交并推送它。但是,随后原始项目的技术发生了变化,所有文件夹都被删除并创建了新文件夹。我也做了同样的事情,删除了文件夹并创建了新的文件夹和文件,但现在我不能做拉请求,因为它们连接到原始项目的旧版本。如何更新我的fork,使其与当前项目的原始版本相同?

您可能希望合并更改或重新开始。合并更改可以这样做:

git merge {remote}/{branch}

其中,
{remote}
是指向上游存储库的git remote(如果
git clone
d上游repo,则可能是
origin
),而
{branch}
是要从中合并更改的分支。如果您不知道这是什么,很可能是
master

您可能希望合并更改或重新开始。合并更改可以这样做:

git merge {remote}/{branch}

其中,
{remote}
是指向上游存储库的git remote(如果
git clone
d上游repo,则可能是
origin
),而
{branch}
是要从中合并更改的分支。如果您不知道这是什么,很可能是
master

如果您不需要保留所做的提交,最简单的方法是删除本地存储库并重新克隆项目

如果您的提交是在
master
上完成的,并且您希望将其保存在
备份分支中,只需执行以下操作:

  • git签出-b备份\u分支主机
然后,要使您的fork与原始项目位于同一点,请执行以下操作:

  • git fetch
    //从远程存储库获取新提交
  • git branch-D master
    //删除
    master
    分支(它和其他分支一样只是一个分支)
  • git签出-b主原点/master
    //从远程重新创建
    master
    origin/master

如果需要,您还可以对
master
以外的其他分支重复此操作。

如果不需要保留所做的提交,最简单的方法是删除本地存储库并重新克隆项目

如果您的提交是在
master
上完成的,并且您希望将其保存在
备份分支中,只需执行以下操作:

  • git签出-b备份\u分支主机
然后,要使您的fork与原始项目位于同一点,请执行以下操作:

  • git fetch
    //从远程存储库获取新提交
  • git branch-D master
    //删除
    master
    分支(它和其他分支一样只是一个分支)
  • git签出-b主原点/master
    //从远程重新创建
    master
    origin/master

如果需要,您也可以对
master
以外的其他分支重复此操作。

最简单的方法可能是删除您的fork并重新创建它最简单的方法可能是删除您的fork并重新创建它您能解释一下保存备份分支的动机吗?我注意到,在主服务器上执行的作为拉请求接受的提交显示在原始项目提交列表中,并作为拉请求历史记录的一部分。删除主分支会以某种方式影响原始项目的历史记录?如果您对
master
分支进行了提交,但没有共享它们,删除
master
会使您的本地提交难以恢复,因为您没有分支引用。如果出现这种情况,
git reflog
就是解决方案。但是那些被原项目接受的呢?也将从原始项目历史记录中消失?不,它们将保留。只要提交是存储库的现有分支或标记的祖先,它就会留在存储库中。拉请求合并将PR的提交转换为目标分支祖先。因此,将它们视为活生生的分支历史是完全正常的。希望这能有所帮助。也许最后一步应该改为“../Recreate master from remote origin/master after delete your remote repo and fork it reach”因为在最后一行将“origin/master”替换为“upstream/master”并不像预期的那样有效。您能解释一下保存备份分支的动机吗?我注意到,在主服务器上执行的作为拉请求接受的提交显示在原始项目提交列表中,并作为拉请求历史记录的一部分。删除主分支会以某种方式影响原始项目的历史记录?如果您对
master
分支进行了提交,但没有共享它们,删除
master
会使您的本地提交难以恢复,因为您没有分支引用。如果出现这种情况,
git reflog
就是解决方案。但是那些被原项目接受的呢?也将从原始项目历史记录中消失?不,它们将保留。只要提交是存储库的现有分支或标记的祖先,它就会留在存储库中。拉请求合并将PR的提交转换为目标分支祖先。因此,将它们视为活生生的分支历史是完全正常的。希望这能有所帮助。也许最后一步应该改为“../Recreate master from remote origin/master after delete your remote repo and fork it reach”因为在最后一行将“origin/master”替换为“upstream/master”无法按预期工作。