git - 设置 fork 仓库的 pull 请求默认分支

标签 git azure-devops git-fork

背景:我在 VSTS 托管的 git 存储库中有一个“原始”项目,并想创建一个
类似的项目,所以我 fork 了 repo 。我无意从 fork merge 到原始 repo - 它们将是 2 个独立的项目。 fork repo 的主分支策略需要 pull 请求,没有直接推送。

现在,每当我创建这样的 pull 请求时,默认目标不是 f​​ork>master 而是 original>master。我总是手动将其更改为 fork>master,但是很烦人...

问题:

  • 如何设置 fork repo 以便 pull 请求默认为 fork>master
    分支?
  • 如何将 fork 的 repo 转换为“普通”repo,“忘记”原始 repo?
  • 最佳答案

    git fork repo 的目的是为上游(原始)repo 做出贡献。所以 fork 的 repo 和原始 repo 之间总是有关系 .

    如果你想创建一个新的 repo(与原始 repo 没有任何关系),但使用与原始 repo 相同的代码和分支,那么你应该 创建一个空的 git repo 并将原始 repo 中的所有分支推送到新创建的 repo 而不是 fork 原始 repo 。
    详细步骤如下:

    1. 在你的 VSTS 项目中创建一个新的 git repo

    在 VSTS 网页中,创建一个新的 git repo。详细步骤,可以引用文档create a repo using the web portal .

    假设 git repo 名称是 myrepo 并且 URL 是 https://account.visualstudio.com/project/_git/myrepo .

    2. 在本地克隆并 check out 原始 repo 的所有分支

    如果您还没有克隆原始 git repo,您​​可以通过以下方式克隆原始 git repo:

    git clone <original git repo URL>
    

    然后通过命令在本地 check out 所有远程分支:
    git checkout <remote branchname>
    

    3.将本地原repo的所有分支推送到新创建的repo

    在本地原git repo中,为新创建的git repo添加remote,将所有分支push到新创建的git repo中。详细命令如下:
    #In the local original repo
    git remote add myrepo https://account.visualstudio.com/project/_git/myrepo
    git push myrepo --all
    

    现在所有的分支都被推送到新创建的 git repo 中,并且它与原始 git repo 是分开的。

    关于git - 设置 fork 仓库的 pull 请求默认分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50784422/

    相关文章:

    git - git 中标记提交的顺序是什么?

    xcode - 存储库已锁定 - 尝试提交到源代码管理时出错

    git - Azure:使用 Visual Studio Team Services 从源代码管理进行部署

    Github: pull 请求后清理 fork

    android - 如何 fork 整个 Android 操作系统的代码?

    git - 没有冲突的 git merge 是否可能会破坏应用程序功能?

    git - 无效 : is this a git repository?

    tfs - NPM:仅安装丢失 - 如何加快 npm install

    git - 实现 TFS pull 请求

    templates - GitHub:Template 和 Fork 概念之间有什么区别以及何时使用?