問題タブ [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.
git - git format-patch を使用してコミットを 1 つのパッチにまとめるにはどうすればよいですか?
まだ git に慣れていない人にメールで送りたいブランチに 8 つのコミットがあります。これまでのところ、私が行うことはすべて、8 つのパッチ ファイルを提供するか、ブランチの歴史の最初からのすべてのコミットに対してパッチ ファイルを提供し始めるかのいずれかです。私は git rebase --interactive を使用してコミットを無効にしましたが、今ではすべての試行で最初から無数のパッチが提供されます。私は何を間違っていますか?
git - Git を使用して、最後の X コミットを一緒に押しつぶす
Git を使用して、最後の X コミットを 1 つのコミットにまとめるにはどうすればよいですか?
git - 複数のコミットを単一の押しつぶされたコミットとして別のブランチにマージするにはどうすればよいですか?
私はリモートGitサーバーを持っています、これが私が実行したいシナリオです:
バグ/機能ごとに異なるGitブランチを作成します
非公式のGitメッセージを使用してそのGitブランチでコードをコミットし続けます
トップリポジトリでは、公式のGitメッセージを使用して1つのバグに対して1つのコミットを実行する必要があります
では、ブランチをリモートブランチにマージして、すべてのチェックインに対して1つのコミットだけを取得するにはどうすればよいですか(これに対してコミットメッセージを提供したい場合もあります)。
git - Git にプッシュする前に複数のコミットを組み合わせる
私のローカル リポジトリには、テーマ的に類似したコミットがたくさんあります。リモートにプッシュする前に、それらを単一のコミットに結合したいと思います。どうすればいいのですか?私rebase
はこれを行うと思いますが、ドキュメントを理解できません。
git - Git rebase (Merge Squash) 私の機能ブランチを別のブランチに
機能ブランチがマスターに移行する準備ができたときに、機能ブランチを支援する git コマンドを探しています。この git コマンドは、ブランチのすべての変更を master 上の単一のコミットに押しつぶします。私は今日これを行います:
4 はスカッシュするコミットの数です。ただし、これには、自分が持っているコミットの数を知る必要があります。今日は次のコマンドを実行してこれを行います。
そしてコミットを数えます。
これを行うためのより良い方法があるべきだと感じています。それとも、これは他の誰もが行う方法ですか?
git - この git commit ログを修正するにはどうすればよいですか?
Bitbucket にリポジトリがあります。コミットをつぶそうとしたときに、コミットログを台無しにしてしまいましc265825
た0a1837e
。
これらのコミットを押しつぶそうとすると0942142
、基本的に空である が発生しました。つまり、そのコミットを試してみると、ファイルが変更されていないことが示されます。これは、「マージ」コミットでは通常のことです-わかりません。
明らかに、Bitbucket にプッシュする前にこのような問題を修正する必要がありますが、事後にどうすれば修正できますか? スカッシュしたいのですが0942142
、可能であれば、「使用されていないファイルを削除しました」という単一のコミットのように見えます。c265825
0a1837e
PS: これは (今のところ) プライベート リポジトリであるため、(まだ) 誰もこれらの変更をプルしていません。
編集:以下の TheBuzzSaw の回答は、0a1837e
. ただし、これら 3 つのコミットを押しつぶして、残りの履歴を保持したかったのです (スクリーンショットはモックアップであり、実際の変更を表すものではありません)。だから私はこれをしなければなりませんでした:
これで、コミット ログが美しくなりました。
git - 非線形コミットを 1 つのコミットにまとめる (ソーセージ作り)
次の git 履歴を検討してください。
21f05f9
738ae0a
と2535dca
を 1 つのコミットに結合するにはどうすればよいですか?
git rebase -i 2535dca
、pick
ing 2535dca
、squash
ing 21f05f9
、を試し738ae0a
ましたが、次のエラーが表示されました。
0534049
コミットをスキップする方法があり288ffd2
、リベースのインタラクティブ モード内にあるかどうかはわかりません。
私がしていることを行うためのより良い方法はありますか? 落とし穴はありますか?
編集:
私が理解し始めているのは、特にそれらのコミットがすべて1つのファイルに関連している場合、非線形コミットが必要な場所に自分自身を置くべきではないということです。コミットによってコードが壊れたり、競合が発生したりする例が見られました。
git - 連続していない 2 つのコミットをマージする方法
合体したいしe5c1e1d
、627c6c6
どうやってするの ?もっと簡単な方法が欲しい。
それらの間に何百ものコミットがある場合、ロールバックしてから再コミットするのは非常に面倒です。
走ったときgit rebase --interactive 856c719
次に、ファイルを保存した後、次のように編集しました。
私は得た
2_dqa_streesful_server/.git/rebase-merge/stopped-sha: No such file or directory
Cannot 'squash' without a previous commit
github - マスターでの Github リポジトリ スカッシュ コミット
私は、歴史的に多くのコミットが「バグ修正」、「今回は実際のバグ修正」、「最終的なバグ修正」、「最終的に修正」された github リポジトリで作業しています。
これらはマスターに直接コミットされました。どうすればそれらをつぶすことができますか?
1年前の彼の投稿から-基本的にこれは悪いように聞こえます.githubで複数のコミットを押しつぶしたい. この1年で何か変化はありましたか?