21

GIT を使用したリベースに関することが判明した最後の質問をして以来、私はまったくリベースしたくないと決めました。代わりに、私はしたい:

  1. ブランチ
  2. 仕事仕事仕事、チェックインとプッシュ常に
  3. それらのコミットをすべて破棄し、何も起こらなかったふりをします (つまり、作業の最後に 1 つのクリーンなコミットを行います)。

現在これを行うには、ファイルを新しいディレクトリにコピーしてから、それらを新しいブランチ (作業ブランチと同じポイントで分岐) にコピーして戻し、それをmasterどこかにマージします。

これは単なる悪いことで、その理由は何ですか? もっと重要:これを行うためのより良い/ GITの方法はありますか? git rebase -i強制的にマージ(および選択、およびスカッシュ)します。

4

2 に答える 2

25

一番簡単なのはソフトリセットです。

トピック ブランチをチェックアウトします。

git checkout -b topic master

仕事、仕事、仕事。

git commit
git commit
git commit
git commit

これに満足して、マスターの上に新しい単一のコミットを作成できます

git reset --soft master
git commit

master にマージし (早送りになります)、トピック ブランチを整理します。( master の場所を覚えたりタグを付けたりする準備ができていて、ブランチを作成せずに master で作業する場合は、これを行う必要はないことに注意してください。これを行うだけで、git reset --soft old-masterこれらgit commitの最後のクリーンアップ手順は必要ありません。)

git checkout master
git merge topic
git branch -d topic
于 2010-02-23T18:46:32.287 に答える
10

オプションgit mergeとの併用も可能です。--squash

于 2010-05-10T11:40:48.570 に答える