【发布时间】:2017-09-13 18:32:00
【问题描述】:
我有几个存储库,我总是必须将一个 core 存储库合并到其中。 core 存储库在每个存储库中设置为 remote 存储库。
一般来说,我更新存储库的工作流程如下:
git reset --hard origin/master
git pull origin master
git fetch core master
然后我执行git merge --squash core/master 并修复所有冲突,然后将存储库推回remote。
这很好,只是有点多余,因为除了每个存储库的 .gitignore 文件中的所有内容之外,这些存储库中的所有内容在技术上都应该与 core 存储库相同。
随着存储库数量的增加,我想知道将core 分支拉入这些存储库的更有效方法是什么,我需要替换除.gitignore 中特别提到的文件之外的所有现有文件它们中的每一个,同时保持 git 历史记录和日志的完整性。
【问题讨论】:
-
你不能用submodule吗?
-
你想要
git checkout branch -- files...吗? -
Git 在项目级别工作。除非您使用子模块,否则无法为特定文件“选择”备用遥控器。
-
我很困惑你在这里完成了什么。您以我不会使用的方式使用某些术语 - 核心是远程 repo,而不是远程 branch,具有远程版本的
master分支。您还有第二个遥控器origin,它也是一个远程仓库,拥有自己的master分支副本。您是否只是想通过单个本地存储库同步多个远程存储库?如果它们在开发更改/提交中出现分歧,是否有理由不为每组更改使用不同的分支,而不是让它们都在master中开发? -
上面有人提到了子模块。我会在您考虑的选项中添加子树 - 但是我想首先了解代码位于单独存储库中的原因。只是为了让我们了解核心 repo 与您使用的其他几个 repo 之间的关系。
标签: git git-workflow