Git:仅将子目录保持在本地
我有一个项目,我在Git:仅将子目录保持在本地,git,Git,我有一个项目,我在project/notes中保存了供自己使用的注释,但是这些注释不应该被推送到远程存储库。通过将路径添加到project/.git/info/exclude,这非常容易。但是,我想使用git来跟踪对笔记的更改。我是否可以在project/notes/.git上创建一个单独的、仅本地的存储库并在那里存储东西,或者这会把事情搞砸?我是否应该将notes目录放在项目外部,然后创建指向它的符号链接?或者有其他方法可以做到这一点吗?我有一个快速解决方案,但这可能不是您期望的 首先在根项目
project/notes
中保存了供自己使用的注释,但是这些注释不应该被推送到远程存储库。通过将路径添加到project/.git/info/exclude
,这非常容易。但是,我想使用git来跟踪对笔记的更改。我是否可以在project/notes/.git
上创建一个单独的、仅本地的存储库并在那里存储东西,或者这会把事情搞砸?我是否应该将notes
目录放在项目外部,然后创建指向它的符号链接?或者有其他方法可以做到这一点吗?我有一个快速解决方案,但这可能不是您期望的
首先在根项目中创建一个.gitignore,其中包含:
notes/
然后在notes目录中创建一个新的git存储库。只要不需要跟踪与项目版本历史记录相关的notes中的更改,即notes文件夹的行为不应像子模块一样,您就可以在忽略的notes文件夹下创建一个新的存储库 但是,如果必须将注释中的更改映射到项目中的更改,而不将注释作为项目的一部分发布,那么另一种方法是创建一个额外的仅本地超级项目,并将实际项目添加为该项目的子模块。然后,您可以将注释作为超级项目的主要内容,或者作为另一个子模块,这取决于您想要如何定义项目结构的语义。在这两种情况下,您都不必特别忽略实际项目中的注释。您将创建如下文件夹结构:
/your_local_super_project
----/project
--------/your_project_tree_here
----/notes
正如您所指出的,您可以将笔记移动到项目目录之外,这可能是您应该做的。您可以跟踪所有要跟踪的内容,并且可以避免notes和项目之间的干扰。它也比摆弄符号链接更便于携带