如何使用 git 将文件夹挂接到另一个存储库
How to hook folder to another repository with git
我已经创建了 GitHub 存储库 X 并在本地进行了克隆。
然后我通过克隆另一个 GitHub 存储库 Y 在这个项目 X 中创建了目录 A。
然后我在这个项目X中更改了文件夹A中的一些文件。
现在我想添加、提交并将此文件夹 A 推送到我的项目 X 的 GitHub 远程。
如何删除对存储库 Y 的挂钩,并实际将文件夹 A 添加到存储库 X。
谢谢!
这在一定程度上取决于您要对这个文件夹做什么 A
。如果您只想在您的存储库中拥有 A
中的这个 version/copy/snapshot,那么这很简单。您只需要在 X
存储库中添加 A
文件并提交它们。您甚至可以删除 /A/.git
文件夹,使 A
子目录不再是一个单独的 Git 存储库。
如果您想保留 A
的历史记录并希望将其保持足够的独立性,例如,您可以对 A
进行更改并将其保存到其中,而不是保留仅在父存储库 X
中发生更改,那么您应该查看 submodules。它们允许您引用另一个存储库 A
作为现有存储库 X
中的子模块。所以你 link A
变成 X
但仍然保持 A
独立。
您可以使用子模块或子树。
他们或多或少是一样的。
阅读here找出两者之间的区别。
主要思想是将内部文件夹作为 "standalone"(存储库或子树)
进行管理
我已经创建了 GitHub 存储库 X 并在本地进行了克隆。
然后我通过克隆另一个 GitHub 存储库 Y 在这个项目 X 中创建了目录 A。 然后我在这个项目X中更改了文件夹A中的一些文件。
现在我想添加、提交并将此文件夹 A 推送到我的项目 X 的 GitHub 远程。
如何删除对存储库 Y 的挂钩,并实际将文件夹 A 添加到存储库 X。
谢谢!
这在一定程度上取决于您要对这个文件夹做什么 A
。如果您只想在您的存储库中拥有 A
中的这个 version/copy/snapshot,那么这很简单。您只需要在 X
存储库中添加 A
文件并提交它们。您甚至可以删除 /A/.git
文件夹,使 A
子目录不再是一个单独的 Git 存储库。
如果您想保留 A
的历史记录并希望将其保持足够的独立性,例如,您可以对 A
进行更改并将其保存到其中,而不是保留仅在父存储库 X
中发生更改,那么您应该查看 submodules。它们允许您引用另一个存储库 A
作为现有存储库 X
中的子模块。所以你 link A
变成 X
但仍然保持 A
独立。
您可以使用子模块或子树。 他们或多或少是一样的。
阅读here找出两者之间的区别。
主要思想是将内部文件夹作为 "standalone"(存储库或子树)
进行管理