Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git:仅将子目录保持在本地_Git - Fatal编程技术网

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和项目之间的干扰。它也比摆弄符号链接更便于携带