Git 交叉回购相关性的最佳实践

Git 交叉回购相关性的最佳实践,git,github,version-control,dependency-management,Git,Github,Version Control,Dependency Management,下面是一个场景: repoa是一个有很多模块和依赖项的怪物代码。安装起来并不容易。它由其他人维护并托管在Github上 Repo A包含一个非常有用的模块X,它与Repo A的其余部分几乎没有依赖关系 我正在维护RepoB(托管在Github上),它很小,我希望能够使它易于分发 我想使用回购协议B中模块X的功能 现在我可以将模块X复制到Repo B中来实现这一点。但是,如果repoa的维护者对模块X进行了一次关键的bug修复,我就没有办法知道这一点。如何解决这个问题?假设模块X在RepoA的

下面是一个场景:

  • repoa是一个有很多模块和依赖项的怪物代码。安装起来并不容易。它由其他人维护并托管在Github上
  • Repo A包含一个非常有用的模块X,它与Repo A的其余部分几乎没有依赖关系
  • 我正在维护RepoB(托管在Github上),它很小,我希望能够使它易于分发
  • 我想使用回购协议B中模块X的功能

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

假设模块X在RepoA的
分支中管理,并且您希望在RepoB的
主分支中使用模块X的功能,并且还希望知道模块X在RepoA中是否有更新。因此,您可以将RepoA的remote添加到RepoB。具体步骤如下:

1.在RepoB的
master
分支中应用模块X(
branchX
在RepoB中): 2.检查branchX在RepoA中是否有更新: 如果输出喜欢:

$ git fetch repoA branchX
From https://github.com/account/RepoA
 * branch            branchX          -> FETCH_HEAD
$ 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)没有更新

如果输出喜欢:

$ git fetch repoA branchX
From https://github.com/account/RepoA
 * branch            branchX          -> FETCH_HEAD
$ 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
的更新应用到
主分支中,可以使用

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

假设模块X在RepoA的
branchX
中管理,并且您希望在RepoB的
master
分支中使用模块X的功能,并且还希望知道模块X在RepoA中是否有更新。因此,您可以将RepoA的remote添加到RepoB。具体步骤如下:

1.在RepoB的
master
分支中应用模块X(
branchX
在RepoB中): 2.检查branchX在RepoA中是否有更新: 如果输出喜欢:

$ git fetch repoA branchX
From https://github.com/account/RepoA
 * branch            branchX          -> FETCH_HEAD
$ 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)没有更新

如果输出喜欢:

$ git fetch repoA branchX
From https://github.com/account/RepoA
 * branch            branchX          -> FETCH_HEAD
$ 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
的更新应用到
主分支中,可以使用

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