git是否只适用于文本文件/源代码?

git是否只适用于文本文件/源代码?,git,synchronization,Git,Synchronization,一个很难回答的问题 在我的整个项目中使用git作为不同存储之间的同步,版本控制不是重点,包括图像、PDF、Word文档,甚至可能是一些exe文件,这也很好吗 它如何跟踪PDF、图像、exe文件中的更改(如果有的话)?如果仅仅因为与HEAD版本存在一些差异而存储整个更改的文件,那么在提交几次之后,存储库可能会变得相当大。。或者它是否仍然只保存文本文件以外的文件中的增量更改 一句话:git对于大型项目的同步是好的还是至少可以接受?对我来说,如果它不比Dropbox等差就足够了。就最终结果而言,GUI

一个很难回答的问题

在我的整个项目中使用git作为不同存储之间的同步,版本控制不是重点,包括图像、PDF、Word文档,甚至可能是一些exe文件,这也很好吗

它如何跟踪PDF、图像、exe文件中的更改(如果有的话)?如果仅仅因为与HEAD版本存在一些差异而存储整个更改的文件,那么在提交几次之后,存储库可能会变得相当大。。或者它是否仍然只保存文本文件以外的文件中的增量更改


一句话:git对于大型项目的同步是好的还是至少可以接受?对我来说,如果它不比Dropbox等差就足够了。就最终结果而言,GUI不是问题。

Git可以用于大型项目,但你不应该签入生成的文件,如pdf、exe等。在google中添加一个.gitignore文件,了解Git应该忽略哪些文件的详细信息


如果您想包含Word文件或类似文件,它们是二进制文件,但不是生成的,那么可以告诉git如何区分这些文件。这意味着您可以告诉git如何比较两个word文件,并决定如何合并两个不同的word文件。再一次,谷歌将是你寻找如何做到这一点的细节

如果您在文件中做了更改,那么git不会只存储更改差异。相反,它会再次存储整个文件。如果您更改了2MB文件的一行。git将使用新的更改再次存储整个文件。然后存储库的大小将为4MB,Git可以看到您更改了非文本文件,但在这种情况下,您将无法充分利用Git。通过文本文件,您可以看到不同版本/提交之间的实际差异

话虽如此,你可以试试这个。我确信应该有软件来显示其他文件类型之间的差异,这是您可能需要的,这将使sens检查差异

与dropbox相比,git应该更好,因为您可以使用提交消息来说明在特定更改中做了什么,并且您可以创建功能分支;但由于其目的,即跟踪不同版本之间的源代码差异,它有点复杂

编辑:

7.7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7此外,还有一个城市的交通运输系统,一个城市的城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,以及以及其他其他其他其他,一个城市,以及以及其他其他其他,以及其他其他的城市,本本本本本城市,城市,城市,以及以及以及以及其他其他其他其他,以及以及其他,本本本本研究,城市,城市,以及以及以及以及以及以及其他的,本本本本本本本研究,对对,以及以及以及以及以及以及以及其他其他其他的,本本本本本本本研究,0,0,以及以及以及以及以及以及以及其他其他其他的,本本本本本本本本本本本本本本研究,以及以及以及以及以及以及以及以及以及以及其他的,3.0万t,t-t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,n,n,n,n,n,n,n,n,t,t,t,s,s,s,s,s,s,s 82奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈蒂,蒂蒂,以及以及以及其他其他其他其他其他其他的研究,以及其他的研究,本本本省省省省省省省,本本本省省,本省,本省,本省,本省,本省,本省省省省省的研究,本省,本省,本省,本省省省省的研究,本本省的研究,本省省省,本省的我,我,k,n,o,w

看起来git将非文本文件存储为字符串,所以它应该只跟踪差异。因此,任何像meld或Beyond Compare这样的产品都应该能够分辨出两幅图像之间的差异。例如,我能够看到两个png图像之间的差异,无法比较


它似乎也能很好地处理PDF文件,但与exe文件一样,您不应该使用版本控制跟踪这些文件类型。不要使用PDF,而是跟踪它们的源代码——例如纯文本的LaTeX文件。由于其性质,编译文件(如exe文件)不适合进行版本控制。这样做的原因是,即使您直接编辑到文件的字符串中,您也无法完成很多工作-您应该编辑源代码。

二进制文件可以分为以下几类:

可由源代码复制的二进制文件。存储和跟踪它们是没有意义的。您通常不会编辑.exe文件来进行更改。只需确保存储所需的所有构建脚本即可复制构建并将二进制文件添加到.gitignore

可编辑和比较的二进制文件。例如,office文件。有一些变通方法,如将它们转换为如图所示的文本。一些GitIDE可能允许外部工具进行区分

可以编辑但难以比较的二进制文件。您如何表示两个视频的差异?可能,但很难。根据大小,我会将文件添加到GIT。你总是能从GIT中获得很多好处,比如跟踪不同的版本,知道一个文件什么时候发生了变化,等等。你付出的代价是存储库的规模更大。无论如何,比较都需要人工打开文件

通常不会被编辑并用作输入的二进制文件。例如,将.jar文件作为依赖项。在这种情况下,您需要这个二进制对象是什么以及如何获取它的元数据。您可以尝试像Maven这样的系统,跟踪存储pom.xml的依赖项,并将二进制文件添加到gitignore中。其他文件可以通过手动Dependecies.txt文件进行跟踪。此版本需要My.Lib1.jar版本10.32.3。。。。您将需要根据每次更改更新文件。这会对你有帮助的 你需要知道每个版本中二进制文件的变化