我的问题非常简单:我的项目中有一个文件夹,我希望版本化,但在推送更新时不会与项目的其余部分一起推送。情况是我和项目一起创建了一个Android应用程序存根,并且我不想推送它直到它实际上有些功能。这是一个非常笨重的文件夹。
我不想为该文件夹创建一个单独的分支,因为有两个问题:首先,每当我从远程拉出时更新该分支都需要合并;其次,在创建/删除数千个Android文件时,两个分支之间的交换需要明显的等待时间,这对我来说非常烦人。
我正在考虑以某种方式编辑.hgignore,但我认为远程仓库将忽略我的本地文件夹是错误的。
有什么建议吗?
答案 0 :(得分:2)
您可以将此代码段添加到您的repo的hgrc文件中:
[ui]
ignore = /path/to/.hg/hgignore
关于这个hgignore文件的观点是它是非版本的并且是本地的。内容hgignore可以是任何适合(版本化的).hgignore的东西。 e.g:
syntax: glob
/directory/to/ignore
文件的名称hgignore可以被称为任何东西,但它是我使用的。
答案 1 :(得分:1)
您可以使用配置[defaults]
部分添加一些" --exclude
"通常命令的选项(请参阅我对Mercurial hg ignore does not work properly的回答)了解更多详情。您甚至可以指定不希望在目录中提交的文件,例如stub/**.c
,用于存根下面目录层次结构中的所有C文件。
但是......要小心,默默地忽略对文件的修改是危险的,并且此[defaults]
部分已被标记为已弃用(它仍然存在于2.9.2中)。
如果这是一种临时情况,它可以解决您的问题:当您准备提交并推送存根时,您只需删除--exclude
部分。