Kenichi Maehashi's Blog
脳内コアダンプ
git: リポジトリ内の全コミットを 1 コミットに squash したい
Monday | June 3, 2013
|
git rebase -i で squash を使うとコミットを結合することができますが、リポジトリ内の最初のコミットは squash することができません。 現在のインデックスをそっくりそのまま "initial commit" だったことにする (つまり、リポジトリ内のコミットを "initial commit" だけの状態にする) 方法は以下の通り。
1. .git/HEAD をエディタで以下のように編集して、作業用ブランチ master2 をポイントする (master2 は既存のブランチ名と衝突しないように命名する)。ref: refs/heads/master2 2. 最初のコミットをあらためて作成する。(作業用ブランチが作成される)git commit -m "initial commit" 3. master ブランチを今のコミットで上書きしてから、作業用ブランチを削除する。git branch -f master git checkout master git branch -d master2 何度かやっているのに、いつも忘れてしまうのでメモ。
追記 (2014/04/12): git 1.7.2 以降では、git checkout --orphan というオプションが実装され、上記の操作は不要になりました。
|
| コメント (0)
|
<< 前ページ[1]
トップページに戻る
Copyright © 2006-2021 Kenichi Maehashi, All Rights Reserved.