問題タブ [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 が自分のブランチでスカッシュをコミットしているかを知る方法
多くの場所と同様に、master にマージする前に機能ブランチ内でコミットを破棄したいと考えています。
これを行うために、git rebase -i HEAD~10
マージする前にインタラクティブなリベース ( )でコミットを頻繁にスカッシュします。
ブランチ内でどのコミットをスカッシュするかを知るにはどうすればよいですか?
もしそうならgit log
、コミットの履歴とマスターへの以前のコミットが表示されます。
このブランチで作成されたコミットと、マスター ブランチで既に行われているコミットを確認/知る簡単な方法はありますか? git history
明確な方法でそれらを区別していないようです。このブランチでの最初のコミットがどれかはわかっていると思います。確認する簡単な方法はありますか?
git - GitHub Web サイトで行われたコミットを無効にする方法は?
Web サイトから GitHub リポジトリのファイルを少し編集し、変更をコミットしました。ファイルを変更してコミットしてからオリジンにプッシュするようなものではなく、ウェブサイトに直接アクセスして行いました。現在、そのブランチには 2 つのコミットがあります。ターミナルから最後のコミットをスカッシュできますか? そうでない場合、GitHub Web サイトからそれを押しつぶす方法はありますか?
私は英語のネイティブ スピーカーではありません。だから、私の悪い英語を許してください。
git - リベースせずに私のgitブランチコミットを同じブランチに押しつぶす方法は?
私はローカル ブランチを持っており、プル リクエストで git-flow を使用しており、PR フィードバックを受け取った後、いくつかのコミットをスカッシュしようとしています。
すべてのコミット (PR などから) を同じブランチにまとめるにはどうすればよいですか?
次のようなものになると思います。
確信はないけど。
このように多くの手順があるため、関数を使用してすべてを結び付け、ブランチ名をパラメーターとして渡すだけでもよいようです。もちろん、自動化するということは、エラー、例外、エッジケースなどを確実に処理することを意味します。
インタラクティブなリベースは使いたくありません。なぜなら、私がトレーニングしている初心者にとって正しく理解するのは少し難しいからです。また、コミットの数を知る必要はありません。このブランチに存在するすべてのコミットを実行したいだけです。
git - 履歴を圧縮するための作成者による Git Squash シーケンシャル コミット
私のチームは、現在何百ものコミットがある長期実行機能ブランチに取り組んでいましたが、今ではそれを本番リリース用のマスターにマージする必要があります。
多くのコミットはバグ修正を行うために行われ、コミットごとに数行しか変更されていないため、そのブランチにそれほど多くのコミットをしたくありません。
Github の PR 作成ページでは、表示されるコミットを 250 に制限しています。
Github から - 「この比較は大きいです!最新の 250 件のコミットのみを表示しています」
したがって、著者からの一連の連続したコミットが 1 つのコミットに押しつぶされるように、履歴を圧縮することにしました。
たとえば、次のようなコミットがあるとします: A - A - A - B - B - A - C - D - D - B- B -A
from author A, B, C and D の場合、結果のコミット ログには A (3) - B
(2) - A - C - D (2) - B
(2) - A が含まれます。ここで、X`(N) は N コミットの squashed commit です。作者Xより。
編集:これにはスクリプトが必要であることを理解しており、同じものを探しています。同じことをするためにインタラクティブなリベースを行いたくありません。
git - git rebase squash は 2 番目のメッセージを受け取ります (fixup など)
いくつかのコミットがあるとします:
コミット 1 と 2 を一緒にスカッシュして、2 番目のコミットのメッセージのみを保持したい場合は、次のようgit rebase -i
に編集します。
そして、結合されたメッセージを常に編集して、最初のメッセージを削除する必要がありました。
fixup
コミットを再配置して、次のように使用できることはわかっています。
しかし、2 つのコミットの順序を逆にすると、競合が発生する可能性があるというリスクがあります。
特に結合されたメッセージの編集を避けて、操作を減らして同じ結果を得るにはどうすればよいでしょうか。コミット 1 の前とコミット 2 の後に多くのコミットがある可能性があることに注意してください。
git - 古いコミットをつぶす最善の方法
開発者は最近、数か月前からリポジトリに「更新済み」のような大量のコミットを残して去りました。理想的には、それらを単一のコミットに押しつぶしたいのですが、これは最近のコミットに対してのみ行っています。
次のコミットのようにするにはどうすればよいですか (2 か月前から何百ものコミットがあると仮定します)。
.... 2 か月前から
凝ったものを望んでいない/必要としない、単純な解決策です。これらのコミットは公に共有されていないため (今日の私以外)、他の人のコミット履歴を混乱させる問題はありません。
git - Git - amend コマンドと squash コマンドの違い
amend コマンドと squash コマンドの違いは何ですか? 私は両方を試してみましたが、どちらも適切な管理のために同じことをしていることがわかりました.