2

假设您有一个裸存储库。它包含3个文件:

  • a.txt
  • b.txt
  • c.txt.

现在,假设我没有b.txtandc.txt但我有一个更新版本的a.txt文件。是否可以在 git 中使用某些命令并告诉它a.txt在存储库中更新,而无需克隆/拉取其他文件?类似于:a.txt在该存储库中更新,仅查找已存在文件中的更改。” 如果没有,是否有任何其他版本控制系统支持此功能?

更新:

一个例子是这样的:一个像 github 这样的网站,包含很多存储库和每个存储库中的很多文件。只是,在这个网站上,用户不会总是看到最新的版本。他们选择要查看的修订版,有时他们想更新文件。在这种情况下,文件的总大小会太大。考虑到用户不会总是看到最新的修订版,我认为更好的方法是按需获取特定文件的单个修订版,并且每当添加更新时,添加更新的文件。

4

2 回答 2

4

Subversion 可以为所欲为。对于 git,有一个类似的问题:Pull single file on server

于 2012-12-23T10:22:28.633 回答
1

如果没有存储库的副本,您将无法做到这一点——这正是 git 的工作方式。如果你想在没有完全访问完整副本的情况下对存储库做一些事情,那么 git 不是适合你的工具。但正如我从您的评论中了解到的那样,您的服务器上确实有存储库,而这实际上就是您想要完成所有工作的地方。您只是不想进行完整结帐以仅触摸单个文件。

如果这是正确的,那么您正在寻找一个在 git 中称为“稀疏检出”的功能,该功能从 1.7 开始可用。有关更多详细信息,请在此处查看我的回答:如何仅克隆 Git 存储库的子目录?(这个问题是关于子目录的,但对单个文件的工作方式完全相同)

于 2012-12-24T03:52:19.370 回答