問題タブ [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 squash とそれに続く push はデータを再送信します
バイナリ データでいっぱいのディレクトリをリモート サーバーに git-push したいと考えています。
これには数日かかる場合があるため、ローカルでコミットして一度に 1 つのファイルをプッシュします (すべてを一度にコミットしてプッシュすると、転送が中断された場合、最初からやり直す必要がありますよね?)。
すべてが転送されたら、これらすべてのコミットを 1 つにまとめたいと思います。ローカルで押しつぶしてから押すと、すべてのデータが再度送信されます! それは私の戦略の目的を無効にします。
リモートにログインして、スカッシュ操作をリモートで繰り返すことができるかもしれませんが、やりたいことを行うためのより良い方法はありますか? すべての適切なデータが既にサーバー上にあることを git に通知するにはどうすればよいですか?
git - Git を使用して、最後の X コミットを一緒に押しつぶす
Git を使用して、最後の X コミットを 1 つのコミットにまとめるにはどうすればよいですか?
git - プッシュされた後にgitでコミットを押しつぶす方法は?
これは、複数のコミットを潰すことの良い説明を与えます:
http://git-scm.com/book/en/Git-Branching-Rebasing
ただし、すでにプッシュされているコミットでは機能しません。ローカルリポジトリとリモートリポジトリの両方で、最新のいくつかのコミットを潰すにはどうすればよいですか?
私がそうするときgit rebase -i origin/master~4 master
、最初のものをとして保持しpick
、他の3つをとして設定しsquash
、そして終了します(emacsのcx ccを介して)、私は次のようになります:
ここで、2f40はpick
コミットです。そして今、4つのコミットのどれもに表示されませんgit log
。コミットメッセージを入力できるように、エディターが再起動されることを期待していました。私は何が間違っているのですか?
git - git merge --squash はクロスブランチマージで頭痛の種になりますか
私は成長し、git を利用しているチームで働いています。私たちは通常、独自の支店で働いています。
別のワーカー リポジトリからいくつかの変更をプルしました。彼の変更は最終的にスカッシュ コミットでマスター ブランチに追加およびマージされました。
マスターから取得してマージしようとすると、競合が発生しました。これは、スカッシュ マージが原因で、マージ トラッキングが混乱するためだと考えています。これから抜け出す簡単な方法はありますか?
第二に。開発者が多数のブランチで作業しており、マスターに移行する前にお互いの変更が必要になる可能性がある場合、マスターでスカッシュ コミットを続行しながらこれを処理する方法があります。
リベースはよく言及されています。しかし、これが複数のルートブランチでどのように機能するかわかりませんか?
git - Git -i rebase : 不明なコマンド: スカッシュ
現時点で私の git-rebase-todo は
コマンドライン出力
squash が認識されないのはなぜですか? git のインストールに何か問題がありますか?
git - 別のブランチから1つのノードへのすべてのコミットを含む兄弟ブランチを作成するにはどうすればよいですか?
私には、6つのコミットがあり、コミットCから派生したブランチmybranchがあります。これもコミットCに基づいて、mybranchからのすべてのコミットを効果的に含み、1つのコミットに押しつぶされた新しいブランチを作成したいと思います。これを行う最も簡単な方法は何ですか?
「git-pushする前にスカッシュする」というマントラのため、これを行う必要があります。新しいブランチについては、リモートサーバーにプッシュされた履歴にmybranchについて言及したくありません。プッシュに使用されるまったく新しいブランチを作成したい理由は、参照用にすべてのコミットをmybranchに保持したいからです。
git - 多数のコミットを非対話的に押しつぶす方法はありますか?
さまざまなコミットを潰そうとしています-HEADからHEAD〜3。これを行う簡単な方法はありますか、それともrebase --interactiveを使用する必要がありますか?
git - git merge (w squash) の GUI はありますか?
私のワークフロー:
- マスターからの分岐
- 私のブランチで働き、頻繁にコミットする (100+)
- ブランチでジョブが完了したら、マスターをブランチにマージし、すべての競合を解決します。
- マスターにマージする前の CODE REVIEW TIME
CODE REVIEW では、2 つの頭の違いを示し、コミットを圧縮/整理する必要があります(約 5 つのコミットで)。このタスクに最適な GUI (クロスプラットフォーム?) は?
git - 押しつぶされたマージ後にデフォルトの git コミット メッセージを受け入れる
スクリプトで次のことを実行したいと思います。
問題は、マージがコミットを行わないことです。したがって、プッシュの前にコミットする必要があります。このマージによって作成されたデフォルトのコミット メッセージで十分です。だから私の質問は:
コミットを自動生成してマージできますか?
または、スクリプトにコマンドを追加して、デフォルトのメッセージを受け入れるコミットを実行できますか?
ありがとう!
git - 履歴を変更せずにすべてのコミット (マージを含む) を 1 つのコミットにまとめる
ブランチに 3 週間取り組んできた 100 個のコミットがあるとします。時折 (本当に毎日)、origin/master からプルしてブランチにマージします。
履歴を台無しにすることなく、すべてのコミットを 1 つのコミットに (簡単に) 押しつぶすにはどうすればよいでしょうか? 何らかの形ですべてのコミットを 1 つにまとめた場合、プル リクエストがオリジン/マスターに移動されたときに、マージされたオリジン/マスター プルは破棄されますか?