使用git跟踪更改的文件而不保存更改
我的文件布局是这样的使用git跟踪更改的文件而不保存更改,git,Git,我的文件布局是这样的 ~/foo/ foo.pl Foo.pm ~/foo/data ~/foo/data/an_article.txt ~/foo/data/an_article/ ~/foo/data/an_article/image.jpg ~/foo/data/an_article/movie.mp4 ~/foo/data/another_article.txt ~/f
~/foo/
foo.pl
Foo.pm
~/foo/data
~/foo/data/an_article.txt
~/foo/data/an_article/
~/foo/data/an_article/image.jpg
~/foo/data/an_article/movie.mp4
~/foo/data/another_article.txt
~/foo/data/another_article/
~/foo/data/another_article/audio.mp3
~/foo/data/another_article/raster.nc
当然,我希望git
跟踪对所有文本文件(程序、CSS、html模板和扩展名为.txt的文章)的更改。关于二进制文件,我希望git
只跟踪它们的最新版本。因此,如果我更改movie.mp4,git
应该在其push
和pull
中包含最新版本,但是git
不应该保存以前的版本。换句话说,我希望git
在除了二进制文件之外的所有文件上都能发挥作用,但是对于二进制文件git
应该假装它是rsync
逻辑
从上面的布局可以明显看出,~/foo/data
实际上是我的数据存储。每一篇文章都有自己的同名文件夹和相关的二进制文件。这样可以确保所有相关文件都非常接近。如果我将二进制文件移到这个结构之外,那么我不仅需要编制一个单独的部署脚本(可能是一个同步二进制文件的rsync
),更重要的是,我破坏了数据存储的逻辑结构
建议?Git不能按您想要的方式工作。新提交依赖于旧提交:计算新提交的SHA-1时,父提交的SHA-1将包含在计算中。这正是使Git安全的原因:对旧提交的任何修改都可以被检测到,并且会破坏历史记录。Git的工作方式不是您想要的。新提交依赖于旧提交:计算新提交的SHA-1时,父提交的SHA-1将包含在计算中。这正是使Git安全的原因:可以检测到对旧提交的任何修改,并将破坏历史记录。将二进制文件作为部署脚本的一部分拉入。将二进制文件作为部署脚本的一部分拉入 从上面的布局可以明显看出,~/foo/data实际上是我的数据 商店 关于基于git的数据存储,请参见git附件: 从git中删除历史:没有这样的事情,请参见上面BrunoReis的解释 从上面的布局可以明显看出,~/foo/data实际上是我的数据 商店 关于基于git的数据存储,请参见git附件:
要从git中删除历史记录,请参见Bruno Reis的上述解释。>建议?将二进制文件存储在git之外。虽然从技术上讲是可行的,但您想要的行为将与git的本质相矛盾。是的,我试图实现的目标将与git的
git
格格不入。但是,我在题为“逻辑”的部分中为上述问题添加了更多信息,以解释我为什么需要这个,这可能有助于找到一个高效的解决方案。>建议?将二进制文件存储在git之外。虽然从技术上讲是可行的,但您想要的行为将与git的本质相矛盾。是的,我试图实现的目标将与git的git
格格不入。然而,我已经在题为“逻辑”的部分中为上述问题添加了更多信息,以解释我为什么需要这个,这可能有助于找到一个高效的解决方案。我不知道关于git附件
。谢谢在阅读它的文档时,我看到了一个关于git-media
的提到,在阅读这篇文章时,我可能需要git-media
而不是git-attraction
所不知道的git-attraction
。谢谢在阅读它的文档时,我看到了一个关于git-media
的提及,在阅读这一点时,我可能需要git-media
而不是git-appendment