簡體   English   中英

我可以在 Git 存儲庫中並行讀取來自不同提交的文件嗎?

[英]Can I read a file from different commits in parallel in Git repository?

我正在使用Git對大文件進行版本控制(修改時)並消除整個文件的重復。 如果可能,我想並行讀取/訪問該文件的提交版本。

[Q]這可以在Git的幫助下實現嗎? 如果沒有,是否有任何其他工具可以做到這一點。


在這個場景中,假設我有一個 Git 存儲庫 (A),其中包含一個 10 GB 的大文件 ( 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

此時,我想並行運行我的源代碼( run )的兩個進程,其中第一個作業應該與提交的版本 1上的myFile.txt交互,第二個作業應該與提交的myFile.txt交互版本 2

我可以輕松地將版本 2 上的myFile.txt復制到不同的文件夾中,並從其復制的位置運行我的代碼讀取,但這將創建該文件的大部分部分的副本,並且我需要重新存儲 10 GB。

這取決於。 如果您的程序可以從 stream 讀取,那么這很簡單:

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

或者,如果您使用的是 bash,也許您可以這樣做:

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

但是如果您的程序需要一個常規文件(例如,如果它尋找),您可能需要在磁盤上有兩個文件副本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM