将一些文件和历史记录推送到新的git仓库

时间:2015-12-20 13:13:15

标签: git github

我有一个包含许多文件的私有git存储库。

我想披露其中一些文件,包括公共(github)存储库中的提交历史记录。

相当多的提交都会引用private作为to be public文件。

我怎样才能(轻松)实现这一目标?

1 个答案:

答案 0 :(得分:1)

git cherry-pick

您可以创建新分支,并使用cherry pick选择您想要公开的提交。

git-filter-branch

从您的分支中过滤掉“不需要的”内容,并将其留下所需的内容。

将不需要的文件放入.gitignore文件

git

不会跟踪此列表中的任何文件

--assume-unchanged标志

回购中任何您不希望更改的文件的

--assume-unchaged标志

git-update-index

  

- [no-]假设未更改

     

指定此标志时,不会更新为路径记录的对象名称。相反,此选项设置/取消设置路径的“假定未更改”位。当“假设未更改”位打开时,用户承诺不更改文件并允许Git假定工作树文件与索引中记录的文件匹配。如果要更改工作树文件,则需要取消设置该位以告知Git。当在具有非常慢的lstat(2)系统调用(例如cifs)的文件系统上处理大项目时,这有时很有用。

     

如果需要在索引中修改此文件,Git将失败(优雅地),例如合并时提交;因此,如果上游更改了假定未跟踪文件,则需要手动处理该情况。