如何根据任何追溯日期从git中提取文件?

问题描述 投票:0回答:1

我有一个在多个服务器上的多个路径上生成文件“ hi.txt”的过程。

target-server1:

/opt/tmp/test/hi.txt 
/opt/tmp/log/db/hi.txt 
.... 
....
/opt/tmp/scr/hi.txt

target-server2:

/app/tmp/hi.txt
/app/db/hi.txt
.... 
.... 
/opt/tmp/scr/hi.txt

and likewise.

我希望在git中维护这些“ hi.txt”文件,并且我应该能够在任何给定的日期时间检索任何hi.txt。

注意:不能在远程服务器上安装git。

下面是我采取的方法。

我将特定文件夹中的所有这些“ hi.txt”拉(复制)到公用服务器上(我们称之为“跳转服务器”),该服务器具有git并使用类似增量值的方式重命名每个“ hi.txt”

jump-server: 
/var/common/hi.txt_1 
/var/common/hi.txt_2 
.... 
....
/var/common/hi.txt_43 
/var/common/hi.txt_44

然后我打算将这些文件推送到git。

挑战是如何检索过去任何给定日期的任何文件?

考虑到我们可能在同一日期使用相同的注释将/var/common/hi.txt_1文件名两次推送到git。

我正在使用本地git和gitlab来维护文件。

将有什么好方法可以帮助我从git中检索任何给定日期的文件?请提出建议?

git gitlab git-push git-pull
1个回答
0
投票

对于跳转服务器上的目录结构:我建议

# under /var/common/ :
server1/tmp/test/hi.txt
server1/tmp/log/db/hi.txt
...
server1/tmp/src/hi.txt
server2/app/tmp/hi.txt
server2/app/db/hi.txt
...
server2/tmp/src/hi.txt
# etc ...

关于“我如何检索过去任何给定日期的文件?”,我不确定我是否理解您的所有担忧。

如果将所有文件复制到跳转服务器的作业随后创建了提交(git add -A; git commit -m "Updated"),则您所需的内容将通过git内置:

  • 使用git log查看所有提交(带有日期和时间)
  • 使用git checkout [xxx]查看精确状态,或git show [xxx]:some/file.txt或...

任何图形查看器(git-kraken,git-extension等)都将为您提供GUI来浏览历史记录并在正确的日期查看精确的文件。

© www.soinside.com 2019 - 2024. All rights reserved.