如何解决每个分支.gitignore简单,忽略相对的文件夹,切换分支时不删除它们不是那么容易
问题
我想为我的iis服务器创建一个“ wwwroot”存储库,并由不同的分支机构跟踪不同的“站点”,特别是生产站点(wwwroot / prod),开发站点(wwwroot / dev)以及其他一些站点(wwwroot / other)。
我认为简单地让每个分支仅跟踪其各自的文件夹,而忽略其他子文件夹,将是微不足道的。此“有效”,除了,在分支之间进行切换删除 其他分支。
我尝试过使用简单的.gitignores来按名称忽略其他目录,而尝试过更复杂的.gitignores会忽略所有但各自的目录。
如果我决定合并分支,我不担心.gitignore文件合并冲突。
我想我可以使用SO上其他地方提出的解决方案,使用不同的排除项并更新分支更改上的符号链接,但是对于长期/替代我的人来说,这并不理想。当然我只是在使用.gitignore错误?
示例
wwwroot/prod (tracked by prod branch,ignores dev and other)
wwwroot/dev (tracked by dev branch,ignores prod and other)
wwwroot/other (tracked by other branch,ignores prod and dev)
但是例如,在设置了gitignores之后,更改为另一个分支会导致将另一个(以前已检出)分支从wwwroot工作目录中删除(因此无法再访问网页)
解决方法
如果您可以负担得起 not 跟踪wwwroot的内容(这意味着不需要在Git中跟踪,无需提交就可以跟踪文件夹或一系列文件夹,但是可以将其保留为私有),那么我将: / p>
- 在存储库之外创建这些文件夹
- 跟踪符号链接
那是
-
wwwroot -> /../prod
(prod
是与回购本身位于同一父文件夹中的文件夹) -
wwwroot -> /../dev
(dev
是与回购本身位于同一父文件夹中的文件夹) -
wwwroot -> /../other
(other
是与回购本身位于同一父文件夹中的文件夹)
那样,您只跟踪wwwroot
(根据分支而变化),并使用相对路径符号链接到正确的外部文件夹。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。