最初に理解しなければならないのは、GitHubのアクセス許可モデルです。問題などを提出するには、レポの許可レベルが必要です。読み取りは十分でなければなりません。
しかし、を読むと、は「すべてのコードと履歴を見ることができる」という意味になります。レポに書かれているものを制御していても、コピーしてフォークできるということさえ知ることができます。そして、 "read(すべてのコード)"よりも低いアクセスレベルはありません。
コードを自分自身に保存し、githubとは別のプロジェクトページを作成し、そこに専用の問題追跡システムを使用したい場合は、何をしようとしているのかが分かります。
コードを公開する必要があると判断した場合は、2つのreposが必要です。パブリックコードのリポジトリは、コードのサブセットに対するニーズをよりよく満たす場合は、読み取り専用または読み取り/書き込み可能にすることができます。あなたが公共のレポが同様に完全な履歴を持つようにしたい場合は、それは難しいですけれども、それは、問題の議論をホストする可能性がありますいずれかの方法など公共のレポへ
分割コードのサブセットは、すぎ難しいことではありません。パブリックコードの2つの異なる履歴を作成しないようにしたいので、おそらくプライベートレポからパブリックコードを削除する必要があります。 (これは、サブモジュールとして再導入することができる - 公共のレポへのリンク - 。しかし、あなたは、単一のディレクトリの下に公共のコードを整理したいと思う意味が、最も簡単な場合には)
のみ現在のバージョンが必要な場合一般公開されるには、それは簡単です。新しいリポジトリを初期化し、ファイルを一方から他方に移動し、必要に応じてサブモジュールのリンクを作成します。
公開されたファイルの履歴を公開する場合は、元のリポジトリ(のクローン)から公開リポジトリを作成するには、git filter-branch
のような行為をしなければなりません。正確な手順は正確な要件に依存しますが、一般的には、(a)subdirectory-filter
を使用して、1つのディレクトリの内容(新しいリポジトリのルート)を公開することができますが、コードが整理されていないようですそれは簡単です。 (b)index-filter
(残っているファイルの既存のディレクトリ構造を維持しながら)プライベートにしたいファイルを削除する。または(c)tree-filter
と、 "元のrepo"バージョンを対応する "パブリックrepo"バージョンに変換して、ファイルを移動、削除、または追加するような複雑なスクリプトです。
ヒストリを分割する場合は、リポジトリの履歴をリンクするのがむしろ難しいため、元のリポジトリに公開ファイルの履歴を保存したいと思うかもしれません。歴史の大きさが相当なものでなければ、ほとんどの場合、実用上の大きな制限はありません。
あなたの答えをありがとう。私はGithubの「issue」が「issue tracking system」として本当に好きです。 Githubリポジトリをいくつかのプロジェクトページで作成し、主に "issue"機能を使用することが許容されると思いますか? – SoftTimur
私はそれが「受け入れられる」かどうかわからないと思います。私はそれが完了したことを思い出してはいません。おそらく、統合されたソース管理なしで問題管理に特に重点を置くサイトが存在するためです。私はあなたができない理由を知りません、もしあなたが本当にやりたいことなら –