gitの助けを借りてモデリング/予測タスクを開始したいと考えています。私はこれを容易にするためにgitアーキテクチャを設定したいが、いくつかの問題がある。データ更新を伴うモデリングタスクのワークフロー
目標:地域におけるモデリング作業の終わりに /サブ領域branchs(必要に応じて人間の改正、人間の改正は=コミット)、コードのどのバージョンのレビューのために利用できる予測のすべてを持っているマスターにダウンマージそれが実行されたデータセットです。後で改訂を行う必要がある場合、モデラーは、正確な予測が完了した時点から分岐して、正しい(おそらく古い)バージョンのコードで作業する必要があります。
問題:データとコードのバージョンが変更されることがあります。古いモデルの実行では、古いコード/データと互換性がないようになります(たとえば、リージョン1、コードバージョン1およびデータバージョン2を使用できますが、リージョン2、コード4およびデータ6)。プロジェクトの予測を再現できる必要があります。
私の解決策: gitの考え方に反しているようですが、データセットやコードの更新があるたびに、それをmasterに置き、ファイル名にバージョン番号を追加してください。リージョン/サブリージョンをブランチにし、すべての予測完了コミットにタグを付ける予測が完了したら、マスターにマージし、コードとデータのバージョンを示す別のファイルを追加します。リビジョンを作成する必要がある場合は、完了タグを見つけて、コードの適切なバージョンでリモデリングし、リージョンにマージしてからマスタにします。モデルを再現する必要がある場合は、作成された追加のファイルから正しいコード/データを使用してモデルを実行します。
これはgitを使ってこのプロセスを追跡する最善の方法ですか、より良い/より簡単な方法ですか?このプロセスはうまくいくのですか、それともそれに起因する意図しない問題がありますか?
「親リポジトリに記録すると、正確なSHA1 ...」と表示されるのは、後で古い予測を実行するために、そのSHA1に--softをリセットする必要があるということですか? – RayVelcoro
@RayVelcoro親を自分が望むSHA1にリセットすると、親コミットによって記録されたサブモジュールがそれぞれのSHA1にリセットされます。これらのSHA1はgitlinkです:https://stackoverflow.com/a/2227598/6309とhttps://stackoverflow.com/a/17442045/6309を参照してください。 – VonC