2008-09-16 21 views
4

私はgitを使って、たくさんのデータファイル(シミュレーション結果)を生成しています。 私は同じリポジトリ内のすべての結果をバージョン化して追跡することを強制されています。 (これは厳しい要件であり、変更することはできません)gitのリポジトリ/ブランチのライトバージョン

しかし、私はそれらを必要としません。プロジェクトは約50 MB、リポジトリには5 GBの結果があります。

私はブランチを作成し、すべての結果を削除し、このブランチをチェックアウトし、そのブランチだけを処理することは可能でしょうか?

私のローカルな変更を太いブランチに戻すには、どうすればいいですか?

私の仕事で5GBを取り除くためのよりよい解決策がありますか?

答えて

3

ブランチを作成してブランチから結果ファイルを削除する場合は、ブランチをマスターにマージすると、マスターから結果を削除しようとします。ファイルの削除は他のどのような変更でもあります。

おそらく、gitサブモジュールサポートを使用して、コードリポジトリのサブモジュールとしてのコード変更を管理できます。このようにして、ファットリポジトリにはすべてが含まれているように見えますが、小さなコードビットだけで作業することができます。これは、スムーズに動作するために少しばかり動き回るかもしれません。

+0

おかげさまで、ありがとうございます。サブモジュールのためにすぐれたエントリーポイントがありますか?私はそれらを使ったことがありません... –

+0

http://git.or.cz/gitwiki/GitSubmoduleTutorialは私が始めたところで、いくつかの情報と例を含んでいます。 –

3

ブランチを作成して1回のコミットで不要なファイルを削除した場合、データファイルを削除するコミットをマージすることなく、後続のコミットをメインブランチにチェックすることができます。

manual for git cherry-pickを参照してください。

+0

私はそれをできるだけ調べます。解決策のように聞こえる、私が探していた。 –

+1

サブモジュールの作成は、結局、より現実的な解決策でした。 –

0

git cherry-pick以外にも、マージの直前にファイルの変更を変更してgit-revertを実行する方法もあります。

関連する問題