【问题标题】:copy feature branch code into master branch of another repository将功能分支代码复制到另一个存储库的主分支中
【发布时间】:2020-05-15 15:53:16
【问题描述】:

我正在寻找使用 azure DevOps 构建管道上的命令行步骤将存储库 A 上的功能分支推送到存储库 B 的主分支的步骤。 谢谢

【问题讨论】:

  • 这将如何工作取决于两个存储库的相似程度。
  • 这两个存储库是在同一个团队项目中还是在 Azure DevOps Sever 中的同一个集合中?
  • @PatrickLu-MSFT,它在同一个 azure devops 服务器集合的同一个团队项目中。

标签: git azure-devops azure-devops-server-2019


【解决方案1】:

最简单的方法是通过拉取请求。但这取决于当前(repoA)和目标(repoB)repos之间是否存在Fork关系。

换句话说,如果您想跨存储库创建拉取请求,则一个存储库必须从另一个存储库分叉

此时,您可以在创建拉取请求时选择另一个存储库/项目。

更多详情请看本题答案:Azure DevOps : Pull Request across the Repositories?

否则需要使用多个git命令来实现:

  1. 分别将 repoA 和 repoB 克隆到本地计算机。

    git clone {repo urla} git clone {repo urlb}

  2. 转到本地仓库并移动到功能分支。

    git checkout {feature branch}

  3. 复制所有内容 - Ctrl+A, Ctrl+C
  4. 移回 repoB 中的 master 分支。

    git checkout master

  5. 粘贴文件(并替换现有文件)Ctrl+V
  6. 提交更改。

    git add .

    git commit -m "update master"

  7. 将更改推送到 Azure DevOps 中的远程存储库。

    git push

现在master 分支更新为feature branch 的内容。


此外,您还可以尝试在市场中使用此第 3 方扩展 --Git Merge

测试 git 分支之间的冲突合并或实际合并提交 并推送两个 git 分支

【讨论】:

  • 嗨帕特里克,我用其他答案跟进了你的想法。在这里,是为我确定答案的 git 命令。 git clone -b feature/feature-test --single-branch git checkout -b master git remote add origin-feature git push origin-feature master #checkout feature branch;早些时候它是主 git checkout feature/feature-test
  • 我觉得对于不熟悉git的人来说,ctrl+a、ctrl+c中需要省略的就是.git文件。我相信.git文件需要在要粘贴文件的指定文件夹中保持完整。
【解决方案2】:

显然,在 cmets 中。所有命令都以单行形式出现。 所以,又来了。

这里是 git 命令为我解决了这个问题。

从 Repo A 克隆单个功能分支

git clone -b feature/feature-test --single-branch

创建一个名为 master 的新分支。

git checkout -b master

添加 Repo B 的远程 url

git 远程添加源特性

推送到回购 B

git push origin-feature master

【讨论】:

  • 感谢您的友好分享。您可以将您的回复标记为答案,这也将有助于社区中的其他人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-31
  • 2021-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-15
相关资源
最近更新 更多