当前位置: 首页 > 知识库问答 >
问题:

当Linus Torvalds说Git“永远不会”跟踪文件时,他是什么意思?

许鸿志
2023-03-14

…Git跟踪你的内容。它从来没有跟踪过一个文件。不能在Git中跟踪文件。您可以做的是跟踪一个有单个文件的项目,但是如果您的项目有单个文件,那么一定要这样做,并且您可以这样做,但是如果您跟踪10,000个文件,Git永远不会将它们视为单个文件。Git认为一切都是完整的内容。Git中的所有历史都是基于整个项目的历史…

(此处为抄本。)

然而,当您深入阅读Git书籍时,首先要告诉您的是Git中的文件可以被跟踪也可以不被跟踪。此外,在我看来,整个Git体验都是面向文件版本的。当使用Git diffGit status时,输出是以每个文件为基础的。在使用Git Add时,还可以根据每个文件进行选择。您甚至可以在文件的基础上查看历史记录,而且速度快如闪电。

这一说法应如何解读?在文件跟踪方面,Git与其他源代码管理html" target="_blank">系统如CVS有何不同?

共有1个答案

闻鹤龄
2023-03-14

在CVS中,历史记录是在每个文件的基础上进行跟踪的。分支可能由具有各自不同修订的各种文件组成,每个文件具有自己的版本号。CVS基于RCS(修订控制系统),它以类似的方式跟踪单个文件。

另一方面,Git获取整个项目状态的快照。文件没有被独立跟踪和版本化;存储库中的修订指的是整个项目的状态,而不是一个文件。

当Git提到跟踪一个文件时,它简单地意味着它将被包括在项目的历史记录中。Linus的演讲并不是指在Git上下文中跟踪文件,而是将CVS和RCS模型与Git中使用的基于快照的模型进行了对比。

 类似资料:
  • 问题内容: 抱歉,这听起来太简单了。我是Java的新手。 这是我用来检查的一些简单代码。当我运行它时,我无法停止它。我以为如果不写任何输入并按,就可以避免循环。 有人可以向我解释在这种情况下如何工作吗? 问题答案: 从System.in读取时,默认情况下是从键盘读取的,这是一个无限的输入流……它的行数与用户希望输入的行数相同。我认为发送EOF的控制序列可能会起作用,例如CTL-Z(或者是CTL-D

  • 我发现切片映射函数和通道经常作为引用类型一起提到。然而,我注意到有些东西表现出非引用行为,就像它们会过时一样: 或 通常我是通过记住slice描述器实现的内部组件来理解这一点的:slice值可以被看作len、cap和数据指针的结构。 但是地图值永远不需要像 为什么?映射值只是映射描述符的指针吗?如果是这样,为什么不这样做呢?

  • 我在React教程上看过这个。这是什么意思? 反应是安全的。我们没有生成HTML字符串,因此XSS保护是默认设置。 如果 React 是安全的,XSS 攻击如何工作?如何实现这种安全性?

  • 问题内容: 我正在研究Java for Web,它提到http是无状态的。这是什么意思,以及它如何影响编程 我也在研究spring框架,它提到了一些Bean,因为它们的状态发生了变化,它们必须声明为内部Bean。那是什么意思 问题答案: HTTP(服务器与客户端之间的实际传输协议)是“无状态的”,因为它在调用之间不记忆任何内容。 通过HTTP访问的 每个 资源都是单个请求,它们之间没有线程连接。如

  • 我正在向一个终端输出,但Git没有正确地检测到我正在向一个终端输出,这是为了给输出着色。我的问题是,当git-config(1)说“只在输出到终端时使用颜色”(这个短语出现在多个配置描述的末尾,比如针对color.ui和color.branch)时,它到底是什么意思?换句话说,Git如何决定它是否输出到终端,我如何改变我的环境设置来通知Git我的终端确实是终端? 具体说明: 我正在Windows上

  • 问题内容: 在Swing中,JPanel表示是不透明的,这意味着什么? 还有JPanel VS JComponent与不透明相比如何? 请尽可能简单地解释一下,因此我在GUI编程方面不是很有经验。 在此先感谢您的帮助 问题答案: Opaque在Swing中具有非常特殊的含义-这意味着该组件在其边界内完全绘制了整个区域(请参见setOpaque javadoc ) 这主要用于确定是否有必要在当前组件