如何推送 .gitignore 中指定的文件?

如果我的 .gitignore 中有一个“供应商”目录,有没有办法可以设置一个遥控器,在我推送时无论如何都会接收该目录?

stack overflow How do I push files specified in .gitignore?
原文答案
author avatar

接受的答案

我认为您正在寻找的功能可以通过有一个用于部署到您的云提供商的分支来实现。

设置一个包含您的 dev 文件的 .gitignore 分支,将您的增量工作检查到该分支中。

将您的 dev 分支合并到不包含 deploy 文件但包含供应商目录的 .gitignore 分支中。

完成合并后,从 deploy 分支推送到远程部署。


答案:

作者头像

您的 .gitignore 文件与推送无关。它被 git statusgit add 之类的东西用来确定哪些文件应该是(或可能是)未来提交的一部分。您可以使用 git add 命令添加被忽略的内容;除非您使用 -f 选项,否则它将引发错误:

The following paths are ignored by one of your .gitignore files:
somefilename
Use -f if you really want to add them.
fatal: no files added

将文件添加到存储库后,它将与任何其他更改一起推送。

作者头像

使用 -f 有力添加。

这是一个例子。

git add -f path/to/file
作者头像

Nishad-up 的答案是正确的: git commitgit push 只会处理您设置为更新到遥控器的内容。但是,当您在 .gitignore 中或在其中列出的文件夹中调用 git add 时,git 不接受该命令,并抛出您得到的错误。
您必须使用 git add -f relative-path-to/my-file.png 或您想要的任何文件强制暂存此类文件或文件夹,其余部分相同(git commit、git push 等)。
*我无法通过 VS-Code 源代码控制栏弄清楚如何做到这一点,我必须在终端中做到这一点。

相关问题