2

私は最近、商用ライセンスのコードを BSD ライセンスに変換し、ライセンス契約が矛盾するコードのセクションを置き換えました。これらはすべてプライベートな bitbucket git リポジトリで行いました。これで、github パブリック git リポジトリで公開する準備が整いました。そのため、初期のリポジトリ履歴 (プロプライエタリ コードを含む) を忘れて、新しいリポジトリを作成する必要があります。言い換えれば、私は

M1 - M2 - ... - Mgood - Mgood+1 - ... - Mtip
                                   \ B1 - B2 - ... - Btip

そして、私が新しいレポで欲しいのは:

Mgood - Mgood+1 - ... - Mtip                   
                   \ B1 - B2 - ... - Btip

Mgood 以前のリポジトリの履歴 (コメント、変更など) は完全に忘れられています。git にはかなり慣れていないので、これは簡単に思えますが、これを行うための最もクリーンな方法をまだ見つけていません。

4

1 に答える 1

0

を使用してこれを行うことができますgit rebase -i

古いコミットを 1 つに押しつぶす必要があるだけです。

s M1
s M2
p Mgood+1
p Mtip

したがって、ここでマークM1M2てスカッシュする(sフラグ)、他のすべてのコミットを保持します(cフラグ)

しかし、かなり長い歴史がある場合、これは多くの手作業になる可能性があります。

于 2012-12-18T00:53:54.220 に答える