如何从本地删除跟踪目录但保留在存储库中?

时间:2019-03-25 11:19:40

标签: git bitbucket

我的Magento应用程序的根目录中有一个名为 downloader 的目录。

目前在版本控制中。我想使目录和文件应该受版本控制(在存储库中)以跟踪任何更改。

但是我想将其安全地从生产服务器中删除,并且无论何时执行 git pull ,都不应在服务器上提取目录。

从生产服务器删除目录后,也不应出现诸如 deleted:downloader / 之类的消息。

如何实现?

1 个答案:

答案 0 :(得分:1)

有一个称为稀疏签出的功能,它允许您执行此操作-它基本上告诉Git在签出或与索引进行交互时,例如本地忽略存储库的一部分。 git status

此处的文档:https://git-scm.com/docs/git-read-tree#_sparse_checkout

操作摘要:

  • 在生产服务器上,在存储库的顶层,创建文件.git/info/sparse-checkout并添加两个模式,每个模式分别在自己的行上:*!/downloader/(合起来意味着:除顶层downloader目录外的所有内容)
  • 启用整个操作:git config core.sparseCheckout true
  • 运行git reset-这将取消所有已分阶段的更改,并且副作用是将模式应用于索引,以便git statusgit add和朋友知道它们。