1

Gitリポジトリには、マージされるべきで--no-ffあったがマージされなかったブランチからのマージがいくつかあります。これらのマージはずっと前に行われました。

--no-ff引数を使用して古いマージを実行しているかのように、コミットを強制/挿入する方法はありますか?

プロジェクトのスーパーの1人は、GitHubのネットワークビューを楽しんでおり、早送りが発生するとすべてが1つの行にマージされる個々のブランチを表示できるようにしたいと考えていました。

4

1 に答える 1

2

新しいメイン/マスターブランチを作成してもかまわない場合(または古いブランチを上書きする場合でも、公開された履歴を書き換えることは悪いことです)、まだ覚えている場合は、マージを再作成するだけで済みます。作られました:

  1. 最初の忘れられた/存在しない/失われたマージをチェックアウトします。

    git checkout -b new_master $commit_before_merge
    
  2. 古いコミットをマージします。適切なマージメッセージ(元のブランチ名を含む)が必要な場合は、古いブランチを一時的に再作成するか、メッセージを手動で編集することをお勧めします。

    git merge $head_commit_of_old_branch
    
  3. 次に、コミットを使用するcherry-pickrebase、元のマスターブランチから新しい「mergy」ブランチにコピーする必要があります。(コミット範囲を指定したチェリーピックには、Gitの最近のリリースが必要です)

    git cherry-pick $commit_before_merge..$commit_before_next_merge
    
  4. 手順2に戻り、履歴に満足するまで繰り返します。

NB。最初にバックアップを作成し、ローカルクローンでテストします。

于 2012-07-25T09:44:53.567 に答える