从本地存储库只将一个文件推送到GitHub

时间:2011-09-25 13:59:01

标签: git version-control github repository

我有一个包含多个脚本的仓库。其中一个特别有用,我想用GitHub分享它。

如何将一个文件(带有提交历史记录)导出到GitHub存储库而不共享同一个存储库中的所有其他脚本?

类似的东西:

git remote add 'origin' git@github.com:user/Project.git
git push -u 'origin' ./useful-script.sh

但是如何指定单个文件名?或者我应该创建某种特殊的“部分”提交?

1 个答案:

答案 0 :(得分:3)

您必须使用filter-branch重写历史记录并删除除该单个文件以外的所有内容:

git filter-branch --index-filter '
  git rm --cached -f -r .;
  git add ./useful-script.sh;
' --all

应该做的。

如果--index-filter不起作用(我不确定那里有git add),请尝试使用相同参数的“--tree-filter”。