1. ホーム
  2. ギット

[解決済み】Git: ブランチ上のすべてのコミットを破棄する方法

2022-03-23 23:27:44

質問

から新しいブランチを作成します。 master を使っています。

git checkout -b testbranch

20回ほどコミットしています。

さて、この20のコミットを潰したいと思います。私はそうします。

git rebase -i HEAD~20

コミット数がわからない場合はどうすればいいのでしょうか?のような方法はないのでしょうか?

git rebase -i all on this branch

解決方法は?

すべてのコミットを破棄するもう一つの方法は、インデックスを master にリセットすることです。

git checkout yourBranch
git reset $(git merge-base master $(git branch --show-current))
git add -A
git commit -m "one commit on yourBranch"

これは、どのブランチから "yourBranch" が来たかを知っていることを意味するので、完璧ではありません。

注:オリジンブランチが Gitでは簡単/可能 (その 視覚的な方法は、多くの場合、最も簡単です。 のように こちらをご覧ください ).

git branch --show-current は、Git 2.22 (Q1 20219) で導入されました。 .


EDIT:あなたが使用する必要があります git push --force


カルロッチャ・ホア が追加されました。 コメント欄 :

リセットの場合は、以下のようになります。

git reset $(git merge-base master $(git rev-parse --abbrev-ref HEAD)) 

[それは)自動的に現在いるブランチを使用します。

それを利用すると コマンドはブランチ名に依存しないので、エイリアスを使用することもできます。 .