2つのコミットを持つブランチ 'firstproject'があります。これらのコミットを取り除き、単一のコミットとして表示するようにします。
コマンドgit merge --squash
は有望に聞こえますが、git merge --squash
を実行すると、コマンドのオプションが表示されます。正しいコマンドは何ですか?
Commit 1:
Added 'homepage.html'
Added 'contacts.html'
Commit 2:
Added 'homepage.php'
Added 'homepage.php'
Deleted 'homepage.html'
Deleted 'contacts.html'
git rebase -i
を使用して、 インタラクティブなリベース を実行します。
現在onで、「commit 1」であり、マージするコミット「commit 2」が前のコミットである場合、次のことができます。 git rebase -i HEAD~2
を実行し、2行目の最初の単語を「pick」から「squash」に変更します。次に、ファイルを作成して終了します。 Gitは最初のコミットを最後の2番目のコミットに押しつぶします。
このプロセスはブランチの履歴を書き換えることに注意してください。コードをどこかにプッシュする場合、git Push -f
を使用する必要があり、コードを共有しているユーザーは変更をプルするためにいくつかのフープをジャンプする必要があります。
問題の2つのコミットがブランチの最後の2つのコミットではない場合、プロセスはわずかに異なることに注意してください。
git rebase -i HEAD~3
または3ではなく多くのコミット。これを回す
pick YourCommitMessageWhatever pick YouGetThePoint pick IdkManItsACommitMessage
これに
pick YourCommitMessageWhatever s YouGetThePoint s IdkManItsACommitMessage
esc
を押してからenter
を押すアクションを実行して、変更を保存します。 [1]
次の画面が表示されたら、これらの不要な行#[2]を取り除き、新しいコミットメッセージまたは何かを作成し、同じescape
enter
アクションを実行します。 [1]
うわー、あなたはより少ないコミットを持っています。または、すべてを壊しました。
[1]-またはgit設定で機能するもの。これは、私の設定を考えると効率的なシーケンスです。
[2]-# this is your n'th commit
のようなものが数回表示され、元のコミットがこれらのメッセージのすぐ下に表示されます。これらの行を削除し、1に結合するn個のコミットの意図を反映するコミットメッセージを作成します。
git rebase -i HEAD~<quantity of your commits>
(i.e. git rebase -i HEAD~5
)txt
ファイルで、最初のコミット(一番上)を除くすべてのコミットでpick
キーワードをsquash
に変更します。一番上でreword
に変更し(次のステップでこのコミットに新しいコメントを提供することを意味します)、[保存]をクリックします! vimの場合、esc
を押し、wq!
を入力して保存し、Enterを押します。完了