【问题标题】:pushing some files and history to new git repo [duplicate]将一些文件和历史记录推送到新的 git repo [重复]
【发布时间】:2015-12-20 13:13:15
【问题描述】:

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

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

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

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

【问题讨论】:

标签: git github


【解决方案1】:

git cherry-pick

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

git-filter-branch

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

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

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

--assume-unchanged标志

--assume-unchaged 标记您不想再跟踪更改的 repo 中的任何文件

git-update-index

--[no-]假设不变

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

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

【讨论】:

    猜你喜欢
    • 2019-05-05
    • 2015-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 2016-03-18
    • 2018-09-02
    相关资源
    最近更新 更多