463

すべてのコミット履歴を削除したいのですが、コミット履歴に未使用のコミットが多すぎるため、コードを現在の状態のままにしておきます。

どうすればいいですか?

これを実行できるgitコマンドはありますか?

git filter-branch ?
git rebase ?
... 

私のコードはgithub.comでホストされています。

4

2 に答える 2

1510

フォルダを削除する.git と、gitリポジトリで問題が発生する可能性があります。すべてのコミット履歴を削除したいが、コードを現在の状態のままにしておきたい場合は、次のように行うのが非常に安全です。

  1. チェックアウト

    git checkout --orphan latest_branch

  2. すべてのファイルを追加します

    git add -A

  3. 変更をコミットする

    git commit -am "commit message"

  4. ブランチを削除します

    git branch -D main

  5. 現在のブランチの名前をmainに変更します

    git branch -m main

  6. 最後に、リポジトリを強制的に更新します

    git push -f origin main

PS:これはあなたの古いコミット履歴を保持しません

于 2014-09-23T16:43:02.147 に答える
134

すべてのコミット履歴を削除したい場合は.git、プロジェクトルートのディレクトリを削除するだけです(非表示になっていることに注意してください)。次に、同じフォルダー内の新しいリポジトリを初期化し、GitHubリポジトリにリンクします。

git init
git remote add origin git@github.com:user/repo

現在のバージョンのコードをコミットします

git add *
git commit -am 'message'

最後に、GitHubの更新を強制します。

git push -f origin master

.gitただし、これらの手順を実行する前に、履歴(リポジトリ内のフォルダ)をバックアップすることをお勧めします。

于 2012-12-05T05:14:14.297 に答える