【问题标题】:How do I split a subdirectory into its own repository?如何将子目录拆分为自己的存储库?
【发布时间】:2020-01-29 11:22:21
【问题描述】:

我在 Git 存储库中有自己的 Python 库。我正在一个新的 Git 存储库中启动一个新的 Python 应用程序,这需要使用该库的子目录,我一定会对其进行修改。

如何将库 repo 的子文件夹导入应用程序 repo,以便在应用程序开发期间所做的修改最终可以带回库的 repo。在应用开发过程中,库本身也会自行进化。

我已经看到 git subtree here 作为将 repo 的子文件夹包含到另一个的选项,但我无法预见如何将更改带回库 repo 并将它们与库的提交合并自己可能同时收到了。

【问题讨论】:

标签: git git-subtree


【解决方案1】:

好的,我找到了发回结果的方法,这些是命令,以防它们将来帮助某人。

来自this

在将子树添加到my-app-repo 之前,从my-company-library-repo 中拆分子树:

# In my-company-library-repo
git subtree split -P src/app/providers/... -b feature-new feature

这将在 repo 的根目录创建一个包含 src/app/providers/... 内容的新历史记录,从 feature 分支开始,并在此历史记录的末尾创建分支 feature-new

然后将该新分支作为子树添加到my-app-repo

# In my-app-repo
git subtree add -P <destination-dir/feature> --squash <my-company-library-repo> feature-new

我完成了用 my-app-repo 的更改更新 my-company-library-repo 的命令

git subtree push -P <destination-dir/feature> <my-company-library-repo> feature-new

这会将更改从 &lt;destination-dir/feature&gt; 拆分,将它们推送到分支 feature-newmy-company-library-repo。然后可以将提交合并/重新定位到my-company-library-repo的主控中

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-03-13
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
  • 2014-08-25
  • 2010-09-30
  • 2012-04-21
  • 2015-10-28
相关资源
最近更新 更多