rya*_*zec 10 git version-control
过去几周我一直在学习Git,我真的很喜欢它与SVN相比的工作方式.我希望完全切换到它的主要原因是合并被认为更容易,几乎没有冲突,我可以在本地提交.这促进了许多分支的使用(例如每个票据/问题/任务/等分支),并且还促进了许多提交.我只需要在SVN中使用分支(因为合并经常产生冲突)而且我只在100%确定问题是修复时才提交(而不是增量提交,这会更好).
现在,关于git的一个问题,就像我一直在阅读的那样,关于非文本文件/大型项目.例如,我正在研究目前在SVN中控制的游戏项目.现在有一个游戏项目,会有很多非文本文件,如艺术,声音和其他二进制文件,有些文件可能会变得非常大.git处理非文本文件/大型二进制文件的效果如何?如果我想将这样的项目移植到git,我必须记住哪些注意事项?
与其他版本控制系统相比,Git存储数据的方式之一是Git将文件内容完全存储为单个对象.这意味着每个文件的每个版本都作为存储库中的完整文件存在(尽管它已经非常压缩).因此,虽然其他VCS存储两个版本之间的差异/增量,并且因此不同地处理二进制文件和文本文件(因为二进制文件不是那么差异),Git只是处理所有这些文件相同.
因此,在Git中使用二进制文件与使用任何其他文件类型没有什么不同.您只需要记住,版本化非常大的文件将大大增加您的存储库大小(因为该大文件的每个版本都按原样存储,即使实际的二进制更改很小).然而,Git的压缩可以创造奇迹并且通常不会让你注意到这一点.特别是如果你只是谈论一个项目的资产,你可能不会遇到任何困难.