【发布时间】:2015-12-20 13:13:15
【问题描述】:
我有一个包含许多文件的私有 git 存储库。
我想公开其中一些文件,包括公共 (github) 存储库上的提交历史记录。
相当多的提交将引用private 作为to be public 文件。
我怎样才能(轻松地)实现这一目标?
【问题讨论】:
我有一个包含许多文件的私有 git 存储库。
我想公开其中一些文件,包括公共 (github) 存储库上的提交历史记录。
相当多的提交将引用private 作为to be public 文件。
我怎样才能(轻松地)实现这一目标?
【问题讨论】:
git cherry-pick您可以创建新分支并使用cherry pick 选择您想要公开的提交。
git-filter-branch从您的分支中过滤掉“不需要的”内容,并将其保留为所需的内容。
.gitignore 文件中此列表中的任何文件都不会被 git 跟踪
--assume-unchanged标志--assume-unchaged 标记您不想再跟踪更改的 repo 中的任何文件
--[no-]假设不变
指定此标志时,不会更新为路径记录的对象名称。相反,此选项设置/取消设置路径的“假定不变”位。当“假设不变”位打开时,用户承诺不更改文件并允许 Git 假设工作树文件与索引中记录的内容匹配。如果要更改工作树文件,则需要取消设置以告知 Git。在处理 lstat(2) 系统调用非常慢(例如 cifs)的文件系统上的大型项目时,这有时会很有帮助。
如果需要修改索引中的这个文件,Git 将失败(优雅地),例如合并提交时;因此,如果假定的未跟踪文件在上游发生更改,您将需要手动处理这种情况。
【讨论】: