如何使用 GitHub 仅提交一次几乎更改或从未更改的文件


How to use GitHub to commit barely or never changed files only once

原因:当项目中有大量文件时,在GitHub Windows桌面版本中检查更改的文件需要相当长的时间。

例如,Zend库可能有大量的文件集,但我永远不会改变其中的任何内容。但是,我仍然希望它被提交。那么有没有办法我只能提交一次,然后 GitHub 永远不会再次检查更改?

任何答案,GUI,命令行式的赞赏。

====

====================================================

解决后编辑

多亏了迪伦·鲍尔斯,问题现在解决了。但我想为那些第一次听到 git 子模块的人解释更多,并详细说明我如何让它工作的步骤。

假设你的 Zend 库应该在项目的 'library/Zend' 文件夹中。在执行此操作之前,Zend文件夹不应该存在,因为您要将其下载为子模块。

我的命令:

> git submodule add https://github.com/opensolutions/zf1.git library/Zend

通过运行上述命令,您的控制台将开始将子模块从 https://github.com/opensolutions/zf1.git 下载到本地文件夹"library/Zend"中。然后,可以使用以下命令提交代码:

git commit -a -m "添加了 ZF1 子模块"

是时候推动了,你会注意到你的 Zend 库根本没有被上传。因为它是 GitHub 上的仓库,所以无需再次上传!

git push

好的,现在转到项目的网页,在库文件夹中,您将看到指向 ZF1 存储库 (https://github.com/opensolutions/zf1.git) 的链接。做!

Git 子模块就像作曲家,但它无法为您解决依赖关系。所以作曲家也是一个非常有价值的观点,下面由ceejayoz回答,谢谢。

这篇文章对我很有帮助:http://joncairns.com/2011/10/how-to-use-git-submodules/

如果它是一个库,我建议通过 git 子模块访问它。例如,Zend Framework 已经在 Github 上了。如果需要 zf2,可以使用以下命令将其添加到存储库中:

git submodule add https://github.com/zendframework/zf2.git path/to/library/dir
git commit -m "Added Zend Framework submodule"

这应该使 GitHub for Windows 忽略带有 Zend Framework 的该目录,因为它不再是 git 存储库的直接部分。
对于您可能正在使用的任何其他不受 git 版本控制的库,您可以自己将其初始化为 git 存储库,并将其推送到 GitHub 或任何其他易于访问的地方,并做同样的事情。