将我的个人 git repo 拆分开来是个好主意吗?

将我的个人 git repo 拆分开来是个好主意吗?

我的主目录中有许多受 git 版本控制的文件。

我的 emacs 设置、zsh 源文件、博士论文等。

所有内容都位于主目录根目录下的一个巨大 git repo 中。(当然,文件本身位于许多不同的目录中。)

我正在考虑使用filter-branch拆分 repo 来这样我的论文提交就不会被我的.emacs提交所污染,等等。

总的来说,这是一个好主意吗?我不想丢失任何历史记录。

我是否必须将我的.gitconfig文件复制到获得 repo 的每个目录中?

而且,如果我不小心git add foo.txt进入了之前的目录git init,它会在 git 在我的目录树中漫游时被暂存到第一个找到的仓库中吗?或者可以预防这种情况吗?

答案1

如果您想将您的存储库拆分为几个新的存储库,那么您将无法使用filter-branch,因为它基本上是一个rebase在单个存储库内运行的强大功能。

您无法拥有多个存储库,同时仍保留历史记录,因为历史记录由涉及原始存储库中所有版本文件的提交组成。因此,恐怕您别无选择,只能从头开始创建多个存储库。当然,您可以存档原始存储库,以备不时之需。

我绝对会避免在工作目录中的任何地方创建 Git 存储库,即git init在 Git 中已经版本化的目录中创建。虽然这是可能的,但需要对--git-dirand/or--work-tree参数格外小心。相反,在创建多个存储库之前,将目录移动$HOME/.git到其他不会被版本控制的目录在不同的目录中

.gitconfig文件是您的每个用户的Git 配置文件默认情况下,它位于您的$HOME。由于您的主目录您的工作目录,您可能认为每个工作目录都需要一个这样的文件,但实际上不需要。每个存储库的配置文件是.git/config

相关内容