Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以从Git存储库中的不同提交并行读取文件吗?_Git_Duplicates - Fatal编程技术网

我可以从Git存储库中的不同提交并行读取文件吗?

我可以从Git存储库中的不同提交并行读取文件吗?,git,duplicates,Git,Duplicates,我使用的是Git,用于对大文件(修改时)进行版本控制,并消除整个文件的重复。如果可能,我希望并行读取/访问该文件的提交版本 [Q]借助于Git,这可能吗?如果没有,是否有其他工具用于此 在这个场景中,假设我有一个Git存储库(a),其中包含一个10GB的大文件(myFile.txt),以及一个在运行期间使用myFile.txt的二进制代码。我提交了那些文件。请注意,我没有将其推入Github $ cd A && ls run // Assume it is a build

我使用的是
Git
,用于对大文件(修改时)进行版本控制,并消除整个文件的重复。如果可能,我希望并行读取/访问该文件的提交版本

[Q]借助于
Git
,这可能吗?如果没有,是否有其他工具用于此


在这个场景中,假设我有一个Git存储库(a),其中包含一个10GB的大文件(
myFile.txt
),以及一个在运行期间使用
myFile.txt
的二进制代码。我提交了那些文件。请注意,我没有将其推入Github

$ cd A && ls 
 run // Assume it is a build source code that do some operation with myFile.txt and gives an output
 myfile.txt
$ git init
$ git add -N *
$ git commit -a -m "version1"
后来,我在
myFile.txt
上做了一些修改,添加了几行,然后再次提交

$ git add -N *
$ git commit -a -m "version2"
[master 9fde555] version2
1 file changed, 100 insertions // Changed file is myFile.txt

此时,我想在parellel中运行源代码的两个进程(
run
),其中第一个作业应该与提交的版本1上的
myFile.txt
交互,第二个作业应该与提交的版本2上的
myFile.txt
交互


我可以轻松地将版本2上的
myFile.txt
复制到不同的文件夹中,并从复制的位置读取代码,但这将在该文件的大部分部分创建副本,我需要重新存储10 GB。

这取决于具体情况。如果您的程序可以从流中读取,那么它非常简单:

git show <commit>:p/a/t/h/to/myFile.txt | run
git show:p/a/t/h/to/myFile.txt | run
或者,如果您使用的是bash,也许您可以:

run <(git show <commit>:p/a/t/h/to/myFile.txt)

运行一个10 GB的文件是不允许的,请重新组织您的回购评论。此外,您所管理的内容也不可能。因为程序从
:/…
路径读取,所以程序是否能够使用stream writer@William对文件进行更改Pursell@alper不可以。如果你想做这样的事情,你需要对你的程序进行实质性的修改。你的程序不会从
:…
读取。相反,您正在调用git从该路径生成一个数据流,并且您的程序正在从该数据流读取数据。为此,我想我唯一的选择是在磁盘上保存该文件的两个副本。有什么工具可以实现这一点吗?我在考虑“块级文件存储”。