我有一个包含Content& amp;的存储库。源文件。开发人员应该只对源文件有效。为节省空间,开发人员不应将内容文件(以GB为单位)克隆到其本地存储库。源文件不作为子模块存在于项目中,而是位于内容所在的相同位置。
我的方法是这样的 - 我从 Master 创建了一个分支 Source ,然后从该分支中删除了内容文件。我发布了同一个分支,用于克隆给开发人员。
当我将来源分支的更改合并回 Master 时,内容文件将在 Master 中删除。如何限制它?如果不可能,那么有没有办法实现我的要求,让一个单独的分支/克隆只有过滤的文件,即其中的源文件?
答案 0 :(得分:5)
显而易见的答案是,您应该单独的源和内容存储库。或者只是留下内容。
答案 1 :(得分:2)
您根本不应该从Source
分支中删除文件。如果Source
和Master
只是同一个存储库中的分支,那么开发人员无论如何都会拥有内容;让它躺在身边是没有害处的。
答案 2 :(得分:1)
使用git-merge
合并两个分支,然后git-revert
删除删除内容文件的提交。
% git checkout Master
% git merge Source
% git revert <content-removal-commit-id>
或者你可以反过来做,然后删除内容删除提交 你合并成大师。它有点复杂,但它可能会使你的大师历史更清洁。
% git checkout Source
% git branch SourceMerge
% git checkout SourceMerge
% git revert <content-removal-commit-id>
% git checkout Master
% git merge SourceMerge
答案 3 :(得分:0)
您确定要在回购邮件中包含这些媒体/ doc文件吗?是否要跟踪200GB媒体库的更改?
如果您在源分支上将其所有者目录引用放在.gitignore文件中,git将忽略这些文件,因此不会触及/删除它们。