跨存储库依赖项的最佳做法



这是一个场景:

  • Repo A 是一个包含大量模块和依赖项的怪物代码。安装起来并不容易。它由其他人维护并托管在Github上。
  • 存储库 A 包含一个非常有用的模块 X,并且几乎不依赖于存储库 A 的其余部分
  • 我正在维护Repo B(托管在Github上(,它很小,我希望它易于分发。
  • 我想在存储库 B 中使用模块 X 的功能。

现在我可以将模块 X 复制到存储库 B 中来实现此目的。但是,如果 Repo A 的维护者对模块 X 进行了关键的错误修复,我就没有办法知道这一点。我该如何解决这个问题?

假设模块 X 在 RepoA

branchX中进行管理,并且您想在 RepoB 的分支中使用模块 X 的功能master并且还想知道模块 X 在 RepoA 中是否有更新。因此,您可以将存储库的远程添加到存储库。详细步骤如下:

1.在存储库master分支中应用模块 X(branchX在存储库中(:

# In local RepoB
git remote add repoA <URL for RepoA>
git checkout master
git pull repoA branchX --allow-unrelated-histories

注意:如果存在冲突,则需要修改并保存冲突文件并使用

git add .
git commit

2.检查分支 X 在存储库中是否有更新:

git fetch repoA branchX 

如果输出喜欢:

$ git fetch repoA branchX
From https://github.com/account/RepoA
 * branch            branchX          -> FETCH_HEAD

这意味着 RepoA 中的branchX(模块 X(没有更新。

如果输出喜欢:

$ git fetch repoA branchX
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 3 (delta 1), reused 3 (delta 1), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/account/RepoA
 * branch            branchX          -> FETCH_HEAD
   65cd100..6abbf6c  branchX          -> repoA/branchX

这意味着 RepoA 中的 branchX(模块 X(中有更新,如果要将branchX的更新应用到master分支中,可以使用

git checkout master  #If your current branch is not master
git pull repoA branchX

相关内容

  • 没有找到相关文章

最新更新