git - 设置分叉仓库的拉取请求默认分支

原文 标签 git azure-devops git-fork

背景:我在VSTS托管的git repo中有一个“原始”项目,想要创建一个
类似的项目,所以我分叉了仓库。我无意从分支合并到原始回购-它们将是2个独立的项目。分叉存储库的主分支策略需要拉取请求,无需直接压入。

现在,无论何时创建这样的拉取请求,默认的目标不是fork> master而是original> master。我总是手动将其更改为fork> master,但这很烦人。

问题:


如何设置fork仓库,使拉取请求默认为fork> master
科?
如何将叉式存储库转换为“正常”存储库,“忘记”原始存储库?

最佳答案

git fork回购的目的是促进上游(原始)回购。因此,分叉的仓库和原始仓库之间总是存在联系。

而且,如果您要创建一个新的存储库(与原始存储库没有任何关系),但是具有与原始存储库相同的代码和分支,则应创建一个空的git存储库并将所有分支从原始存储库推入新创建的仓库,而不是分叉原始仓库。
详细步骤如下:

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.在本地克隆并签出原始存储库中的所有分支

如果您尚未克隆原始的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分开。

相关文章:

angular - 根据天蓝色的部署插槽更改角度配置

azure-devops - 构建管道视觉设计器中的任务的YAML中的注释的目的是什么?

git - 合并后一个提交的拉取请求

git - 为什么Git使用令人困惑的相似名称,例如“ origin foo”,“ remotes / origin / foo”和“ origin / foo”?

git - 在GIT仓库中为每个开发人员分支

git - 维护与上游同步的分支

tfs - TFS-源代码控制存储库大小限制

github - CocoaPods和GitHub分支

git - git在添加到.gitignore后仍然显示已修改的文件

linux - 将git status的结果传递给后续命令