オーディオフィンガープリントソフトウェアプロジェクトを無料のライセンスでリリースしたいのですが、リポジトリには著作権で保護されたオーディオファイルが含まれています。テストケースも現在これらのファイルを使用しています。最大のバージョン履歴で著作権を侵害せずにコードを公開するにはどうすればよいですか?
詳細:
主な質問:公開リリースの処理方法
副次的な質問:プロジェクトの初期段階でプライベートコードまたはメディアが必要になる場合があるので、最初にこのジレンマを回避するにはどうすればよいでしょうか。
GitHubには、すべての履歴からファイルを消去する方法を説明するページがあります: 機密データを削除 。
時々、ユーザーは誤ってパスワードやキーなどのデータをgitリポジトリにコミットします。
git rm
を使用してファイルを削除することはできますが、ファイルはリポジトリの履歴に残ります。幸い、gitを使用すると、リポジトリ履歴全体からファイルを削除するのがかなり簡単になります。危険:コミットがプッシュされたら、データが危険にさらされていると考える必要があります。パスワードをコミットした場合は、変更してください!キーをコミットした場合は、新しいキーを生成します。
リポジトリからファイルを削除する
パスワードが変更されたので、ファイルを履歴から削除して
.gitignore
に追加し、誤って再コミットされないようにします。私たちの例では、 GitHub gem リポジトリからRakefile
を削除します...
副次的な質問:プロジェクトの初期段階でプライベートコードまたはメディアが必要になる場合があるので、最初にこのジレンマを回避するにはどうすればよいでしょうか。
大きなメディアファイル(400MBのオーディオ)を追跡する場合は、別のリポジトリに配置します。
それは一石二鳥を殺す:
必要に応じて、メディアリポジトリを(リリースする予定の)パブリックリポジトリの サブモジュール にすることで、作業をより便利にすることができます。
そうすれば、(開発の初期段階では)(機密性の高い)コンテンツ自体ではなく、ポインタだけを保持できます。次に、リポジトリを公開するときは、サブモジュール参照を削除するだけです。これは、履歴を書き換えて400MB相当のものを除外するよりもはるかに面倒です。