問題タブ [squash]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - Git で最初の 2 つのコミットをスカッシュしますか?
を使用git rebase --interactive <commit>
すると、任意の数のコミットを 1 つのコミットにまとめることができます。
コミットを最初のコミットに押しつぶしたくない場合を除き、これで問題ありません。それは不可能に思えます。
それを達成する方法はありますか?
適度に関連する:
関連する質問で、私は最初のコミットに対して押しつぶす必要がある別のアプローチを考え出すことができました。
興味がある場合: git: 最初にコミットを挿入し、他のすべてをシフトする方法は?
git - git format-patch を使用してコミットを 1 つのパッチにまとめるにはどうすればよいですか?
まだ git に慣れていない人にメールで送りたいブランチに 8 つのコミットがあります。これまでのところ、私が行うことはすべて、8 つのパッチ ファイルを提供するか、ブランチの歴史の最初からのすべてのコミットに対してパッチ ファイルを提供し始めるかのいずれかです。私は git rebase --interactive を使用してコミットを無効にしましたが、今ではすべての試行で最初から無数のパッチが提供されます。私は何を間違っていますか?
git - すべてのgitコミットを1つに押しつぶす方法は?
リポジトリ全体を最初のコミットまでどのように押しつぶしますか?
最初のコミットにリベースできますが、2つのコミットが残ります。最初のコミットの前にコミットを参照する方法はありますか?
git - git rebase interactive: マージ コミットを一緒にスカッシュします
インタラクティブなリベース中に 2 つのマージ コミットをまとめて押しつぶす簡単なソリューションが必要でした。
私のリポジトリは次のようになります。
つまり、my-feature
最近 2 回マージされたブランチがあり、間に実際のコミットはありません。my-feature
ブランチは独自の公開ブランチであるため、ブランチをリベースするだけではなく、最後の 2 つのマージ コミットを 1 つにまとめたいだけです (これらのコミットはまだ公開していません)。
私は試した:
しかし、私は得ました:
私が最終的にやったことは次のとおりです。
現在、新しいマージ コミットはマージ コミットとは見なされなくなりました (最初の親のみが保持されます)。そう:
しかし、コミットが多い場合、これは複雑になる可能性があります。より良い解決策はありますか? ありがとう。
ミルドレッド
git - merge --squashとrebaseの違いは何ですか?
私はgitを初めて使用し、スカッシュとリベースの違いを理解しようとしています。私が理解しているように、リベースを行うときはスカッシュを実行します。
ruby - 垂直ハッシュのエントリを削除/スカッシュする
ここにハッシュとして格納された X、Y マトリックスを表すグリッドがあります。
XY マトリックス上のいくつかのポイントは、(文字列型として) 値を持つ場合と、持たない場合があります。
典型的なグリッドは次のようになります。
ただし、基本的に空のエントリをすべて削除する必要があります。
[17,3] としましょう => Raphael の前に要素がない場合 ([16,3] が存在しないとしましょう)、[17,3] は [16,3] などになります。
したがって、基本的にすべての空のアイテムは、ハッシュの垂直 (行) 構造から取り出されます。
私が見なければならない機能はありますか、それとも空白を削除して他のアイテムを調整して移動する簡単なスカッシュのような方法はありますか?
よろしくお願いします。
git - 大規模な git commit スカッシュ
私の会社は、CVS から git に移行中です。私たちは長い間 CVS を使用してきたので、膨大な歴史があります。手作りするには多すぎる。
ログを見ると、実行できる多くのスカッシュがあります。たくさん。私がやりたいのは、2 つの隣接するコミットを比較するスクリプトをフックすることです。true が返された場合は、コミット メッセージを連結し、コミットをスカッシュします。また、2 つのコミットと 1 つのコミット メッセージを受け入れて、それらを 1 つにまとめてつぶすコマンドにも満足しています。
git rebase --interactive は私が必要としているものに近いですが、「スカッシュ」には手動での介入が多すぎます。スカッシュの代わりに「修正」を使用することも検討しましたが、コミットメッセージを失いたくありません。
何か案は?
git - リベースをテストするためにブランチのコピーを作成するにはどうすればよいですか?
以前、クローンを作成してクローンでリベースを実行することでこれを実行しましたが、別のブランチで安全に実行できると思います。
feat-x
約25のコミットがある機能ブランチがあります。これらのいくつかを(安全に)一緒に押しつぶしたいと思います。
(最初の数回押しつぶしたので、正しく理解できなかったので、「安全に」と言いますが、クローンで作業していたので、正しい呪文がわかるまで捨てました。)
邪魔することなく押しつぶす実験をすることができるように、どのコマンドのシーケンスが私feat-x-exp
にそれのコピーを与えるでしょうか?feat-x
feat-x
git - 複数のコンピューターで作業しているときに git rebase を安全に使用するにはどうすればよいですか?
デスクトップとラップトップの 2 台の異なるコンピューターで同じプロジェクトに取り組んでいます。いくつかのタスク/機能の途中で、それらの間を移行する必要がある場合があります。
だから私はラップトップでコミットしてから、それをデスクトップに転送(プッシュ/プル)して続行したいと思います。次に、機能が完成したら、新しいコミットを作成し、半分完了したコミットでそれを押しつぶしたいと考えています。
履歴を混乱させずにラップトップにプル/プッシュするにはどうすればよいですか?
これを処理する適切な方法は何ですか?これを行った後、コミットも公開できる必要があります。現在、私は master ブランチに直接取り組んでいますが、別のブランチでの作業が役立つ場合は、そうします。
私は git rebase -i の使用方法を知っており、問題なく同じコンピューター上で数回使用したので、回答に git rebase/squash の詳細を含める必要はありません。
git - ハンクをコミットに再編成する
私はいくつかのコードの主要なリファクタリングを行い、その過程で何度かコミットしました。これはまだ公開リポジトリにプッシュされていません。プッシュする前に、コミットを論理ユニットに再編成したいと思います。問題は、コミットを潰すだけでなく、ハンクを他のコミットに再編成したいということです。
明確にするために、私はハンクA1、A2、A3でAをコミットし、ハンクB1、B2、B3でBをコミットしました。Aより前のバージョンをチェックアウトし、ハンクA1、A2、B2を含む新しいコミットCと、ハンクB1、B3、A3を含む新しいコミットDを作成したいと思います。
前もって感謝します。