問題タブ [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.
eclipse - Eclipse で git マージ スカッシュを実行する方法
時々、Eclipse からスカッシュをマージする必要があります。コマンド ラインで実行できることはわかっていますが、Eclipse にグラフィック オプションを統合すると非常に便利です。あなたはそれを行う方法を知っていますか?
github - マスターでの Github リポジトリ スカッシュ コミット
私は、歴史的に多くのコミットが「バグ修正」、「今回は実際のバグ修正」、「最終的なバグ修正」、「最終的に修正」された github リポジトリで作業しています。
これらはマスターに直接コミットされました。どうすればそれらをつぶすことができますか?
1年前の彼の投稿から-基本的にこれは悪いように聞こえます.githubで複数のコミットを押しつぶしたい. この1年で何か変化はありましたか?
git - 指定されたハッシュまでの非対話的な修正
時間のコミットがあるとしましょう
コミットされていない変更はありません。私がやりたいのは、 , の後first
のすべてを非対話的に押しつぶすことです。に相当するものが欲しい
ここでは例として 4 つのコミットを使用していますが、実際のコミット数は異なります。ただし、コミットのハッシュはわかっているので、それを使用したいと思います。
これを検索しても無駄でした (正しい用語を検索していない可能性があります)。多くの解決策が見つかりましたが、この正確な状況には決してなりませんでした。
git - プル リクエスト中の git 混乱の修正
github プロジェクトのプル リクエスト中に作成された大量の git コミットがあります。私はすべてのコミットをまとめてつぶすように頼まれましたが、それ以来、PR の進行中にリポジトリにプルした他のコミットを誤ってマージ、リセット、およびマージするという信じられないほどの混乱を引き起こしました。
私ができるようにしたいのは、プルリクエストに実際に関与している2つのファイルを別のディレクトリにコピーし、PRのために作成した最初のコミットにリセットして、新しいファイルをPR が単一のコミットで表示されるように、最新の変更をコミットしてからコミットします。これは可能ですか?ありがとう!
git - ソースツリーで2つ以上のコミットをスカッシュしますか?
オリジン/マスターへの最後のプッシュ以降、約 20 件のコミットを多数行っています。複数のブランチ、マスターを持ったことはなく、すべてのコミットはマスターで行われました。できればsourcetreeを使用して、20個のコミットすべてを1つのコミットにまとめるにはどうすればよいですか? これをやりたいので、1 つのコミットを origin/master にプッシュするだけです。
sourcetree では、リポジトリ メニューでインタラクティブな rebase コマンドを使用する方法を見つけました。スカッシュしたいコミットの正確なリストが表示されます。それらすべてを含む1つのコミットが表示されるまで、スカッシュボタンを繰り返し押してみました。しかし、OK を押すと、最近の 2 つのコミットのみが押しつぶされてしまいます。そのため、ダイアログが実際には複数を押しつぶすことができることを示しているように見えても、私はそれを機能させることができません。
git - 押しつぶされたコミットの履歴を取り戻すことは可能ですか?
ここで Git ルーキー。複数のコミットを 1 つのコミットにまとめ、単一のコミットを既にリモート リポジトリにプッシュしました。今、私は押しつぶされたコミットのいくつかを取り戻したいと思っています。出来ますか?
git - 履歴を保持したまま git ブランチを上書きする
私たちのチームは、プロジェクトの 2 つのバージョンを並行して開発しています。
ブランチのコミットmaster
は基本的に古いコードのバグ修正でしたが、v2setup
ブランチには完全な書き直しが含まれています。
これらのバグ修正が行われていなければ、単純に新しいブランチをマスターに戻すことができましたが、間違っていなければ、厄介な競合が発生するだけです。
では、どうすればそれができるでしょうか?
git - Git: 最新のコミットではなく、ルートから開始されていない連続したコミットを押しつぶす
最新のコミットのスカッシュとルートでのコミットのスカッシュに関するいくつかの関連する質問を確認しましたが、どちらもルートにない最近のコミットをスカッシュするのに役立ちません。
これが私の開始シナリオです:
そして私の望ましい結果:
どこは 、 、 、Z
のスカッシュでありF---G---H
、F---G---H
分岐していないコミットの任意の長さのシーケンスにすることができます。D---E
I---J
最初のアプローチ:
ここで、最も古いコミット (インタラクティブなリベースの最初の行) を残しながら、コミットF---G---H
をに選択します。なぜこれが機能しないのですか?squash
pick
更新: コマンドの最後で、リベースがHEAD コミットD
で進行中です。E
確かに、開始時に進行中のリベースはなく、git rebase --abort
再度実行中に呼び出すと同じ結果になります。上記のリンクに従って、ルートまたは HEAD でこれを行うと、すべて正常に動作します。
2 番目のアプローチ:
[新しいブランチをマージすることにより (フォーラムの最後の投稿)][ http://git.661346.n2.nabble.com/Non-interactive-squash-a-range-td5251049.htmlgit checkout -b <clean-branch> <start-id> and
) gitを使用する別の試みを行いましたmerge --squash `、しかし、私は次のようになります:
この結果があるようです:
私は少し困惑しているので、どうすればこれらのコミットをつぶすことができますか?
最終的には、これを に実装する予定なJGit
ので、JGit
実装も受け入れられます。
ノート
ここに重複があるかもしれませんが、回答がなく、質問が少し不明確だと思います。
アップデート
これは、以下の @ryenus の回答に対する回答です。
チェリーピックは commit で失敗しI2
ます。失敗すると、私のブランチの状態はチェリーピックまで意図したとおりになり、その後にコミットされていない変更が続きます。を呼び出すと、これらのコミットされていない変更がクリアされ、commitが正しいことを確認しました。これは. をコミットしてからチェリー ピッキングを行った後、チェリー ピックが で失敗するのはなぜですか?I2
I---I2---J
work
D---E---Z
git cherry-pick --abort
Z
F---G---H
Z
F
マージ競合を作成して失敗git cherry-pick I...J
するチェリーピックを試みているようです。I2
助言がありますか?
ここに私の出力があります: