如何使用Git组织一组科学实验

如何使用Git组织一组科学实验,git,scientific-computing,Git,Scientific Computing,我在一个模型上运行实验,工作流程如下: model - code - simulation_results - a83bc4 - 23e900 - etc - analysis 我在一个模型(Python软件)中工作 我更改了一些参数并进行了一个实验 然后,我将存储实验结果(作为泡菜) 然后,我将使用另一个软件(IPython笔记本)分析(pickle)结果 我使用的是一个指南,实验的结果存储在一个表中,沿着提交的散列。我希望将结果存储在一个目录中,将目录命名为哈希 关

我在一个模型上运行实验,工作流程如下:

model
- code
- simulation_results
   - a83bc4
   - 23e900
   - etc 
- analysis
  • 我在一个模型(Python软件)中工作
  • 我更改了一些参数并进行了一个实验
  • 然后,我将存储实验结果(作为泡菜)
  • 然后,我将使用另一个软件(IPython笔记本)分析(pickle)结果
我使用的是一个指南,实验的结果存储在一个表中,沿着提交的散列。我希望将结果存储在一个目录中,将目录命名为哈希

关于版本控制,我想将
代码
分析
分开。例如,
analysis
中IPython笔记本中绘图的颜色变化不应改变
code

我想的方法是:

目录结构如下所示:

model
- code
- simulation_results
   - a83bc4
   - 23e900
   - etc 
- analysis
不同的Git存储库用于
code
analysis
,将
simulation\u结果
保留在Git之外


有什么评论吗?更好的解决方案?谢谢。

听起来不错,您的结构非常适合使用
模型成为git回购的母公司

这样,您将在
模型
回购中链接
code
analysis
SHA1


这意味着您可以基于
model
repo(“父”repo)的SHA1在私有(即未版本化)目录
model/simulation\u results
中创建目录:SHA1链接
project
analysis
子模块的SHA1,这意味着您可以准确地再现实验(基于
项目
分析
的确切内容)。

模拟结果下的十六进制数应该是什么意思?(我猜它们是提交ID,但我错过了一些上下文。)我认为子模块是一种很好的方法。我已经编辑并详细说明了我的答案。嗨,约瑟夫,是的,十六进制数确实是提交ID。嗨,VonC。谢谢你详细说明你的答案,这非常有帮助。