2009-08-26 5 views
3

私はローカルのgitリポジトリを開始しました。さて、この時点で、私はそれをgithubに公開したいと思っていますが、私はプロジェクトの全歴史、最新の改訂版を公開したくありません。前のコミットオブジェクトを一切使わずにブランチのHEADを公開する

特に、ローカルの「パブ」ブランチを作成し、それに機密情報を隠す可能性があります(パブリックブランチを公開する)可能性があります。

もし私がプレーンプッシュを使って言ったことをすれば、私は機密情報も公開されるので、リモートリポジトリに公開されたすべての "パブ"

これはどのように達成できますか?

ありがとうございます!

答えて

2

this questionをご覧ください。

ソースツリーの.gitフォルダを別のものに置き換えて、公開するときのコードを確認することもできます。

Gitが動作するため、履歴を共有せずに同じGitリポジトリにブランチを設定することはできません。リポジトリは初期状態のルートコミットを持ち、他のすべてのコミットはそのコミットに対する単にデルタです。

しかし、あなたはバージョン管理履歴を公開したくない場合は、我々は、それであるが、なぜ単純に、バージョン番号のtarballとしてそれにGitリポジトリをドラッグする理由コードを公開しません:)

+0

+1の代替ソリューション –

+0

私は、彼がgithubなどに公開したいと思っている以外は、tarballの有用性が低いと思われる以外は、plush oneと言います。 –

+0

ありがとうございます。主に2つの理由からgitリポジトリを使ってコードを公開したいと思います。 1 - 公開されたコードの履歴を追跡したい。 2 - 他の人と共同作業することはいいことです。 もう一度ありがとうございます。 –

2

支店は、エクスポートされたすべての履歴をプッシュする必要があります。

解決策は、あなたの最新のチェックアウトを使って新しいgitリポジトリを作成することです。次に、そのリポジトリを現在のリポジトリのリモートとして追加します。自分の側でdevにプロダクションを同期させて、git patch applyまたはgit rebase -iを使って物事をプロダクションに移します。

これは、すべての公開から露出したくない個人的な開発履歴を保持します。

0

私は、私はそれを扱うことになっていない事をするのgitを曲げるようにしようとしていると思います:)

私が思いついた簡単な解決策は次のとおりです。

1 - 「公開草案」ブランチを作成します。マスターの 2 - あなたのコードを公開可能にするため、つまりパスワードやそのようなものを隠すために、すべての変更を行います。その後のマージはこれらの修正をうまく処理します。 3 - 準備ができたら、パブリックドラフトをリモートリポジトリを追跡している別のgitリポジトリのマスタとrsyncします。 4 - すべての変更をコミットし、リモートリポジトリにプッシュします。

他のリポジトリを "public"という名前のブランチに置き換えることができますか?他のブランチからマージすることはありませんが、 "public-draft"ブランチにのみマージされます。これにより、公開リポジトリ上の他の人が行った変更をマージすることができます。

ありがとうございます。

+0

パブリックパッチングと他のブランチへのマージについては、そうすることができます。昨日からの私の答えです。 –

関連する問題