【发布时间】:2020-05-12 05:51:13
【问题描述】:
我在存储库中有一些文件(文档、实用程序脚本、我的服务器的私钥等),它们不必在部署中,但为了开发方便,它必须在存储库中。有没有像 .gitignore 这样在拉取时忽略某些文件和文件夹的方法?
【问题讨论】:
-
不,没有,但也许您会发现这个问题的答案很有用? How to git-pull all but one folder
-
听起来是一种不寻常的方法。你在哪里拉,为什么不希望文件出现?也许考虑添加一个“编译”步骤来组合一个可以安装的发行版。例如,如果您使用 repo 来托管网站文件,请使用脚本将部署所需的所有内容放在一起。
-
请注意,
git pull表示运行git fetch,然后运行第二个 Git 命令。git fetch步骤从不接触任何您的工作树文件根本。这是感兴趣的 second Git 命令,所以你的问题应该改写为“有没有办法让而不是 some files”。您可以选择 merge 或 rebase 作为您的第二个命令......但问题是,仍然没有真正好的方法可以让 git merge不合并某些文件,或者git rebase不 rebase 某些文件。 -
在您意识到这些文件甚至根本不在 Git 中之前,这一切都没有任何意义。然后,一旦你意识到你的工作树是 yours 并且当你让 Git 弄乱它时 Git 只会弄乱它,并且
git merge和git rebase都明确要求 Git 弄乱它它,它开始有意义了。 -
最好不将配置和诸如私钥之类的东西放入存储库中。您可以放入“样本”文件,以便初始克隆提供样本,可以将其重命名为真实文件。然后真正的文件永远不会存储在任何提交中,因此 Git 永远不需要弄乱它们。