如何让Git将嵌套仓库视为普通文件夹而非子模块且保留其仓库属性
解决方案
方法:强制让ParentRepo将ChildRepo视为普通目录
配置ParentRepo忽略ChildRepo的Git元数据
在ParentRepo的.gitignore文件中添加规则,避免跟踪ChildRepo的.git目录:ChildRepo/.git/强制添加ChildRepo内容到ParentRepo
Git默认会跳过包含.git的目录,因此需要用-f参数强制添加:git add -f ChildRepo/执行后,ParentRepo会跟踪ChildRepo目录下除
.git外的所有文件,包括未提交到ChildRepo的child_untracked。日常维护
后续提交时,常规的git add命令即可捕获ChildRepo内的变更;若有新的未跟踪文件,可再次使用git add -f ChildRepo/确保被纳入跟踪。
关键注意事项
- ChildRepo自身的
.gitignore不会影响ParentRepo的跟踪逻辑,只要ParentRepo的.gitignore未排除相关文件,就能正常跟踪。 - ChildRepo仍可作为独立仓库正常操作(提交、拉取、推送至自身远程),ParentRepo会同步跟踪其目录下的所有文件变更,包括未提交到ChildRepo的内容。
内容的提问来源于stack exchange,提问作者goweon
相关产品推荐
相关产品推荐

