可以使用提交添加私有文件(未推送)?

时间:2015-05-15 11:57:33

标签: git

我有这个问题,因为在这种情况下它会非常有用: 我目前正在开发一个开源程序,我想保持git repo干净,只包含源代码和构建相关文件。然而,除此之外,我编写了一些仅与我相关但与我正在处理的提交或分支相关联的脚本。

是否有可能通过提交保存这些文件但不推送到远程仓库?

4 个答案:

答案 0 :(得分:1)

无论如何,你在独立的回购和分支机构工作。因此,您可以提交实用程序文件以及相应的chahges。当您为pull请求准备提交时,只需创建一个单独的发布分支,签出它并在下次提交时删除这些文件。您的开发分支仍将在旧提交中包含这些文件。

功能准备就绪时: 创建一个分支并结帐到其中

git checkout -b pull_request
git rm <all utility files>
git commit -am'removed utility files'

你也可以将它作为一个提交,以保持历史整洁。在上一个命令之后:

git reset --soft <sha1 where I forked this branch>
git commit -am'implemented feature X'

现在您的分支pull_request包含上次提交的所有更改,并且不包含任何中间开发提交中的实用程序文件。

答案 1 :(得分:0)

不容易,如果你不想推送文件,它就不能在提交中(分支只是指向提交的指针)。提交哈希是从其包含的文件树中创建的,因此省略文件将更改哈希并中断与远程仓库的同步。

您可以将这些文件放在不同的仓库中,并使用脚本同时切换两个分支。

答案 2 :(得分:0)

你在工作树中将它们作为未经修改的变化怎么样!
将它们添加到.git / info / exclude文件中,以便它们不会显示在状态中。

你永远不会提交它们,而且你从不推动它们! 但是,您可以选择维护脚本的单独副本(可能是git repo本身),这样您就不会错误地从工作树中删除它们。 (如果他们没有跟踪,Git将永远不会碰他们。)

答案 3 :(得分:0)

一种解决方案是拥有一个私有的github文件夹(不是一个漂亮的解决方案)。

相关问题