問題タブ [git-cherry-pick]
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 cherry-pick によって導入された重複コミットを削除するには、git rebase をどのように使用すればよいですか?
私は少し混乱していgit rebase
ます。
私はdevelop
枝と枝を持っていstaging
ます。に合併develop
しましたstaging
しかし、チェリーピックが原因で重複したコミットがたくさんあります。重複を削除したい。次のことを行う必要がありますか?
更新:git merge develop
はローカルなので、まだプッシュしていません
git - タグのチェリーピッキングは後者に影響しますか?
リリースを行っている間、以前にリリースされたタグをチェックアウトし、新しいアイテムを ( を使用してgit cherry-pick <commit-id>
) そこにチェリーピックしました。次に、 を使用して新しいタグを作成しましたgit tag <tag-name>
。
これは、変更をチェリーピックした古いタグに影響しますか?
git - 新しいブランチへの GIT パブリック ブランチのクリーンアップ
リモート/パブリックブランチ「OLD」をクリーンアップする必要があります。これには、悪い/巨大なコミットが含まれているためです。
OLD - 簡易グラフ
そうするために私はした:
1) 「NEW」ブランチを作成しました。
2) 最初の大きなコミットの前に戻る (c234)
3) 最後の大きなコミットの前にすべてのコミットをチェリーピックします。(c236)
4) 次に、最後の巨大なコミット (c237) の後で、変更されたすべてのファイルを「OLD」ブランチからコピーしました。
5) そして最終的に、変更を反映する多くの小さなコミットを作成しました (c235、c237)
NEW now - 簡略化されたグラフ
今、私の意見では、(c237) 以降に行われたすべての変更を「OLD」で「NEW」の上にリベース/チェリーピックする必要があります。
NEW 予想 - 単純化されたグラフ
この git-rebase -i の前に試してみましたが、これは公開レポであるため、多くの (OLD の HEAD へのコミットがほぼ 400 件あります) マージが含まれており、時々競合を解決する必要がありました。魔女には何日もかかる可能性があります。
それに対処する方法についてのアイデア。
git - Git でのさまざまなコミットのチェリー ピッキング
何かアイデアが得られることを願っていました。私は3つのブランチを持っています:
- 主人
- 明確な
- 機能ブランチ
master
汎用コード ベースが含まれているため、後で分岐して新しいタイプの実装を作成する場合でも、簡単に作成できます。しかし、今のところspecific
私のメインの開発ブランチです。
そこで、新しい機能をテストするために に分岐specific
しfeature-branch
、満足したら にマージしfeature-branch
直しましたspecific
。
specific
しかし、マスターにマージしたくない実装固有のコミットがいくつかあります。ほとんどのコードは一般的な変更であり、マージして元に戻したいと思っています。
からの約 30 の変更を にマージしfeature-branch
ましたspecific
。specific
それらの 30 のうち、おそらく約 20 を からにマージしたいと考えていmaster
ます。
これを行うための最良の方法は何ですか?
マージしたい各コミットをチェリーピックするだけmaster
ですか?もしそうなら、時系列の逆順で行くべきですか(つまり、マージしたい最も古いコミットを取得し、次に2番目に古いコミットを取得し、master
.
どんなアイデアでも大歓迎です。ありがとう
git - シリーズを「チェリーピック」する方法は?
一連のコミットをチェリーピックしたい。これは、(1): --ff-only マージも (2): 相互のリベースも (3): 共有ブランチの両方をリベースして再試行する (1) 私のブランチが非常に広いため、私の特定のケースでは機能しないためです。分岐し、異なっています。ただし、チェリーピックしたいコミットは、コードベースのめったに触れられない部分にあるため、ここではマージ衝突のリスクはありません。たくさんのコミットを 1 つずつチェリー ピックする必要がないようにして、時間を節約するにはどうすればよいでしょうか?
git - 競合を無視して、ステージ/インデックスのみをコミットします
私には大きなコミットがあり、厳選しました。pick は競合の合計を作成するようになりました (作業ツリー内)。ここで、すべての競合を解決することなく、ステージングされた (正常にマージされた) すべての変更をコミットしたいと思います。
単純に、コミットはステージでしか機能しないといつも思っていましたが、試してみると、競合を解決しないとコミットできないというメッセージが表示されます。
誰かが私に何が起こっているのか、どうすれば修正できるのか説明してもらえますか?