设置forked repo的pull请求默认分支

时间:2018-06-10 13:55:11

标签: git azure-devops git-fork

背景:我有一个项目"原创"在VSTS托管的git仓库中,想要创建一个 类似的项目,所以我分了回购。我无意从分支机构合并到原始仓库 - 它们将是两个独立的项目。 fork for repo的主分支策略,需要拉取请求,不需要直接推送。

现在,每当我创建这样的拉取请求时,默认目标不是fork> master而是原始> master。我总是手动将它改为fork> master,但它很烦人......

问题:

  1. 如何设置fork repo,以便pull请求默认为fork> master 分支?
  2. 如何将分叉回购转换为"正常"回购,"遗忘"原来的回购?

1 个答案:

答案 0 :(得分:2)

git fork repo的目的是为上游(原始)repo做出贡献。所以分叉回购和原始回购总是有他们之间的关系

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

1。在VSTS项目中创建一个新的git仓库

在VSTS网页中,创建一个新的git仓库。详细步骤,您可以参考文档create a repo using the web portal

假设git repo名称为myrepo,URL为https://account.visualstudio.com/project/_git/myrepo

2。克隆并签出本地原始仓库中的所有分支

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

git clone <original git repo URL>

然后通过以下命令在本地检出所有远程分支:

git checkout <remote branchname>

3。将所有分支从本地原始仓库推送到新创建的仓库

在本地原始git repo中,为新创建的git repo添加remote,并将所有分支推送到新创建的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分开。