如何将 git 分支变成叉子?

mar*_*mnl 6 git github git-branch

我在我的 GitHub 存储库中创建了一个分支:https : //github.com/markmnl/FalconUDP,所以现在有两个分支:“master”和“single-threaded”。我现在意识到我永远不想将“单线程”合并回“主”,并希望彼此独立地维护每个分支,尽管有时我会想从一个分支中挑选一些代码到另一个。

如果分支被意外合并,那将是灾难性的(虽然当然不是灾难性的,因为我总是可以回去——它在源代码控制中)。

我觉得我应该做的是将项目分叉到另一个仓库中。(这样我仍然可以使用 Pull Requests 来挑选樱桃)。

我现在该怎么办?

Sto*_*ica 8

如果我理解正确的话,您想要在 GitHub 中的同一用户帐户或组织内创建一个项目的分支。GitHub 似乎明确不支持这一点,他们的文章Alternatives to forking into the same account解释道。

您可以做的并且可能适合您的目的的事情是创建一个新的存储库并将分支推送到single-threaded它:

  1. 创建新的存储库,完全为空(不要添加自述文件或其他文件):https://github.com/new

  2. repo2在原始存储库的本地克隆中,将新存储库添加为新的远程库,例如,我们将此远程库称为:

     git remote add repo2 NEW_REPO_URL
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将您的single-threaded分支推送到新的存储库(repo2远程):

     git push -u repo2 single-threaded
    
    Run Code Online (Sandbox Code Playgroud)
  4. 从原始项目中删除此分支,假设您的远程名称为origin

     git push origin :single-threaded
    
    Run Code Online (Sandbox Code Playgroud)

这与 GitHub 上的 fork 功能不同。repo2GitHub 上的分叉功能将显示在原始存储库链接的 UI 上。根据我上面链接的文章,我认为你不能达到这种效果。如果您想引起人们对这两个存储库的存在以及如何使用它们的关注,我认为您最好的选择是将其记录下来。


Ben*_*ins 0

我会这样做:

  1. 将 FalconUDP 分叉到新存储库(使用 GitHub 上的分叉功能)
  2. 在本地克隆新存储库(FalconUDP-st?)
  3. single-threaded分支合并回master
  4. 删除single-threaded分支
  5. 推回到FalconUDP-stGitHub 上

您可以在 GitHub 网站上发出拉取请求,也可以在本地克隆中挑选。