2

同様の質問をカバーするトピックがいくつかありますが、おそらく解決すべきものでこれを解決できないようですGit rebase

かなり大きな Git リポジトリがあり、コミット履歴の大部分を切り離したいと考えています。コミット グラフの現在の状態は次のようになります。

(huge tree of various branching and merging) -> commit_I_want_to_squash_to -> branching off into master and couple of feature branches

私の望ましい結果は次のようになります。

commit_I_want_to_squash_to_is_first_in_tree -> branching off into master and couple of feature branches

現在のすべてのブランチが起点として単一のコミットを使用しているため、これは何らかの形で可能になるはずだと思います。で遊んでみましたがgit rebase --squash、300 以上の分岐履歴をつぶすのはかなり大きな作業のようです。最初に作成したいコミットの直前に、コミットツリーを「スライス」するオプションがあるはずです..

4

3 に答える 3

0

私がそれをしなければならなかった場合、私はただ書くでしょう:

git rebase -i <initialCommitOfTheTree>

必要に応じてすべてのコミットをスカッシュします。はい、300行を編集する必要がある場合、これは非常に難しい作業ですが、vimまたは別のテキストエディターでこれをすばやく解析し、変更したい行の先頭をすべてs.

@mnagelが言ったように、これには非常に正当な理由があるはずです。

乾杯。

ビター。

于 2013-09-16T09:09:02.417 に答える