我通过git管理我自己的个人小网站,更多的是作为一种学习经验,而不是任何真正的优势。我的工作流程通常是:
我想使用MathJax在我的网站上显示数学方程,但MathJax文件夹是128Mb,而我项目的其余部分几乎不包含1Mb。此外,MathJax /包含许多小文件,并且(因为它进入我的工作树)git add和git status之类的操作运行得非常慢 - 我假设因为git必须单独检查每个文件的状态。
在添加MathJax /之前,我很想git reset --hard
提交,从我的git repo(.gitignore)中排除MathJax文件夹,只需手动将其添加到我的网络服务器中,理由是我赢了定期更改MathJax,并将其添加到repo似乎会为其他快速操作增加相当大的开销。再说一次,这意味着我的repo不是一个独立的实体,这在概念上是错误的 - 我知道当我下载一个看起来很漂亮的新脚本或服务时我会感到多么沮丧,然后我必须在它之前找到十五个依赖项会跑。
显然,没有其他人会在这个特定的回购中工作,但我仍然希望养成良好的习惯。在这种情况下,最佳做法是什么?回购中是否应包含大型依赖项?如果不是,那么引用它们的最佳方式是什么 - README.md?
答案 0 :(得分:3)
引用git书:
经常发生在处理一个项目时,您需要使用 内部的另一个项目。也许这是第三个图书馆 派对开发或您正在单独开发和使用 多个父项目。在这些情况下会出现一个常见问题: 你希望能够将这两个项目视为独立但仍然存在 能够在另一个中使用一个。
您需要使用名为子模块的git功能。它是另一个git存储库中的git存储库。有关详细信息,请参阅Git book或man pages。
其他选项是git子树(不要与子树合并混淆)。它在1.7.1及更高版本的git版本中可用。一篇很好的博客文章,描述了子树的使用:https://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/