表示 git 项目对具有自己的 git 存储库的本地包的依赖性的最佳做法是什么?
What are best practices for representing a git project's dependency on a local package with its own git repo?
我有一个本地包依赖项,它有自己的 git 存储库,我有一个依赖于该目录的项目。同步项目存储库及其本地包存储库的最佳方式是什么?
一种选择是将包合并为子项目,如下所述:
How to Migrate Git Projects to Be One Project with Subprojects
但是,如果我对包依赖项进行了更改,我将需要将其合并回去。此外,最终会维护包的两个镜像版本。这是这种情况下的最佳做法还是有更好的解决方案?
或者我可以对包有一个象征性的 link,但我不确定当一个项目有一个象征性地 link 的 git 子仓库时最佳实践是什么]ed.
对于源依赖项,您可以在以下选项之间进行选择:
-
git submodule add -b master -- /url/of/dependency.git
git subtree (as illustrated here, see this tutorial)
git subtree add --prefix=subdir --squash /usr/of/dependency.git master
两者都允许在 subrepo 中进行演化,但除非你进行 constant 更改,否则我更喜欢 submodule:它允许引用另一个 repo 的固定 SHA1。
在“”查看更多信息。
子仓库被引用为 gitlink, a special entry in the index of the parent repo。
只要您提交并推送它们,您仍然可以在该子仓库中进行提交,然后将 gack 向上一级到父仓库,添加并提交新的 SHA1 (gitlink),然后也将其推送。
你可以reference a submodule in order to follow a branch(即-b master
部分)
引用同一子模块的任何其他项目都需要这样做:
git submodule update --remote
他们将从该分支获取最新的(并且需要添加并提交从子模块获取中产生的新 SHA1)
我有一个本地包依赖项,它有自己的 git 存储库,我有一个依赖于该目录的项目。同步项目存储库及其本地包存储库的最佳方式是什么?
一种选择是将包合并为子项目,如下所述:
How to Migrate Git Projects to Be One Project with Subprojects
但是,如果我对包依赖项进行了更改,我将需要将其合并回去。此外,最终会维护包的两个镜像版本。这是这种情况下的最佳做法还是有更好的解决方案?
或者我可以对包有一个象征性的 link,但我不确定当一个项目有一个象征性地 link 的 git 子仓库时最佳实践是什么]ed.
对于源依赖项,您可以在以下选项之间进行选择:
-
git submodule add -b master -- /url/of/dependency.git
git subtree (as illustrated here, see this tutorial)
git subtree add --prefix=subdir --squash /usr/of/dependency.git master
两者都允许在 subrepo 中进行演化,但除非你进行 constant 更改,否则我更喜欢 submodule:它允许引用另一个 repo 的固定 SHA1。
在“
子仓库被引用为 gitlink, a special entry in the index of the parent repo。 只要您提交并推送它们,您仍然可以在该子仓库中进行提交,然后将 gack 向上一级到父仓库,添加并提交新的 SHA1 (gitlink),然后也将其推送。
你可以reference a submodule in order to follow a branch(即-b master
部分)
引用同一子模块的任何其他项目都需要这样做:
git submodule update --remote
他们将从该分支获取最新的(并且需要添加并提交从子模块获取中产生的新 SHA1)