問題タブ [git-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.

0 投票する
8 に答える
102175 参照

git - git format-patch を使用してコミットを 1 つのパッチにまとめるにはどうすればよいですか?

まだ git に慣れていない人にメールで送りたいブランチに 8 つのコミットがあります。これまでのところ、私が行うことはすべて、8 つのパッチ ファイルを提供するか、ブランチの歴史の最初からのすべてのコミットに対してパッチ ファイルを提供し始めるかのいずれかです。私は git rebase --interactive を使用してコミットを無効にしましたが、今ではすべての試行で最初から無数のパッチが提供されます。私は何を間違っていますか?

0 投票する
40 に答える
2541106 参照

git - Git を使用して、最後の X コミットを一緒に押しつぶす

Git を使用して、最後の X コミットを 1 つのコミットにまとめるにはどうすればよいですか?

0 投票する
15 に答える
846923 参照

git - 複数のコミットを単一の押しつぶされたコミットとして別のブランチにマージするにはどうすればよいですか?

私はリモートGitサーバーを持っています、これが私が実行したいシナリオです:

  • バグ/機能ごとに異なるGitブランチを作成します

  • 非公式のGitメッセージを使用してそのGitブランチでコードをコミットし続けます

  • トップリポジトリでは、公式のGitメッセージを使用して1つのバグに対して1つのコミットを実行する必要があります

では、ブランチをリモートブランチにマージして、すべてのチェックインに対して1つのコミットだけを取得するにはどうすればよいですか(これに対してコミットメッセージを提供したい場合もあります)。

0 投票する
8 に答える
298687 参照

git - Git にプッシュする前に複数のコミットを組み合わせる

私のローカル リポジトリには、テーマ的に類似したコミットがたくさんあります。リモートにプッシュする前に、それらを単一のコミットに結合したいと思います。どうすればいいのですか?私rebaseはこれを行うと思いますが、ドキュメントを理解できません。

0 投票する
3 に答える
40253 参照

git - Git rebase (Merge Squash) 私の機能ブランチを別のブランチに

機能ブランチがマスターに移行する準備ができたときに、機能ブランチを支援する git コマンドを探しています。この git コマンドは、ブランチのすべての変更を master 上の単一のコミットに押しつぶします。私は今日これを行います:

4 はスカッシュするコミットの数です。ただし、これには、自分が持っているコミットの数を知る必要があります。今日は次のコマンドを実行してこれを行います。

そしてコミットを数えます。

これを行うためのより良い方法があるべきだと感じています。それとも、これは他の誰もが行う方法ですか?

0 投票する
1 に答える
299 参照

git - この git commit ログを修正するにはどうすればよいですか?

Bitbucket にリポジトリがあります。コミットをつぶそうとしたときに、コミットログを台無しにしてしまいましc2658250a1837e

ここに画像の説明を入力

これらのコミットを押しつぶそうとすると0942142、基本的に空である が発生しました。つまり、そのコミットを試してみると、ファイルが変更されていないことが示されます。これは、「マージ」コミットでは通常のことです-わかりません。

明らかに、Bitbucket にプッシュする前にこのような問題を修正する必要がありますが、事後にどうすれば修正できますか? スカッシュしたいのですが0942142、可能であれば、「使用されていないファイルを削除しました」という単一のコミットのように見えます。c2658250a1837e

PS: これは (今のところ) プライベート リポジトリであるため、(まだ) 誰もこれらの変更をプルしていません。

編集:以下の TheBuzzSaw の回答は、0a1837e. ただし、これら 3 つのコミットを押しつぶして、残りの履歴を保持したかったのです (スクリーンショットはモックアップであり、実際の変更を表すものではありません)。だから私はこれをしなければなりませんでした:

これで、コミット ログが美しくなりました。

ここに画像の説明を入力

0 投票する
3 に答える
761 参照

git - 非線形コミットを 1 つのコミットにまとめる (ソーセージ作り)

次の git 履歴を検討してください。

21f05f9 738ae0a2535dcaを 1 つのコミットに結合するにはどうすればよいですか?

git rebase -i 2535dcapicking 2535dcasquashing 21f05f9、を試し738ae0aましたが、次のエラーが表示されました。

0534049コミットをスキップする方法があり288ffd2、リベースのインタラクティブ モード内にあるかどうかはわかりません。

私がしていることを行うためのより良い方法はありますか? 落とし穴はありますか?

編集:

私が理解し始めているのは、特にそれらのコミットがすべて1つのファイルに関連している場合、非線形コミットが必要な場所に自分自身を置くべきではないということです。コミットによってコードが壊れたり、競合が発生したりする例が見られました。

0 投票する
1 に答える
267 参照

git - 連続していない 2 つのコミットをマージする方法

合体したいしe5c1e1d627c6c6

どうやってするの ?もっと簡単な方法が欲しい。

それらの間に何百ものコミットがある場合、ロールバックしてから再コミットするのは非常に面倒です。

スクリーンショット

走ったときgit rebase --interactive 856c719

次に、ファイルを保存した後、次のように編集しました。

私は得た

2_dqa_streesful_server/.git/rebase-merge/stopped-sha: No such file or directory Cannot 'squash' without a previous commit

0 投票する
2 に答える
1427 参照

github - マスターでの Github リポジトリ スカッシュ コミット

私は、歴史的に多くのコミットが「バグ修正」、「今回は実際のバグ修正」、「最終的なバグ修正」、「最終的に修正」された github リポジトリで作業しています。

これらはマスターに直接コミットされました。どうすればそれらをつぶすことができますか?

1年前の彼の投稿から-基本的にこれは悪いように聞こえます.githubで複数のコミットを押しつぶしたい. この1年で何か変化はありましたか?