首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Git:如何为*checkout*忽略/指定文件

Git:如何为*checkout*忽略/指定文件
EN

Stack Overflow用户
提问于 2011-03-31 02:03:19
回答 5查看 20.9K关注 0票数 18

如果我不想跟踪.html文件,我可以将模式添加到.gitignore中,它们将被忽略。我想知道如何做相反的事情-在签出时,我怎么能要求git只签出某些类型的文件或不签出某些类型的文件?

例如,如果我不想要html文件,我可以这样写:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git checkout HEAD . --no .html

如果它存在的话。有没有一种已经内置的方法,或者我只需要在结账后运行其他东西?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-03-31 03:32:37

如果你想打包要部署的文件,你可能不需要或者不想要repo本身。这正是git archive的作用所在。手册页中的几个示例(链接):

git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)

创建一个tar存档,其中包含当前分支上最新提交的内容,并将其解压缩到/var/tmp/junk目录中。

git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip > git-1.4.0.tar.gz

为v1.4.0版本创建压缩的tarball。

export-ignore属性的帮助下,您应该能够让它准确地执行您想要的操作:

export-ignore

带有export-ignore属性的文件和目录不会被添加到存档文件中。详情请参见gitattributes(5)

例如,要排除目录private以及文件mine.txtsecret.c,可以将其放在文件.gitattributes

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private/     export-ignore
secret.c     export-ignore

就像gitignore文件一样,您可以将这些文件放在存储库中的任何位置,它们将从该目录操作,但从顶层开始是一个很好的选择。

票数 19
EN

Stack Overflow用户

发布于 2017-06-28 23:34:58

Git的稀疏-检出

如果你只想签出你的存储库的一部分,你可以使用git的稀疏签出选项,它有强大的包含/排除规则。

以下StackOverflow问题提供了一些有用的说明:

但总而言之:

  1. 启用sparseCheckout选项:

git config core.sparseCheckout true

  • 创建名为.git/info/sparse-checkout的文件,其中包含:

/* !node_modules

这实际上意味着在将存储库签出到工作目录时包括除node_modules目录之外的所有内容。

票数 18
EN

Stack Overflow用户

发布于 2011-08-17 10:19:29

因此,我希望将不带测试文件的代码发送到生产服务器。

对我来说,最简单的方法就是在解压归档文件后使用:rsync --exclude 'tests'删除所有测试文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5494576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文