問題タブ [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 - 共通のコードを持つ2つのプロジェクト
私は2つのプロジェクトに割り当てられています。どちらも共通の親から派生しており、ほぼ同時に親にマージされることを目標としています。簡単にするために、それらをmaster、projA、projBと呼びましょう。
ソースコードのフォルダ構造が次のようになっているとしましょう:
/ src / main / UI
/ src / main / backend
ファイルがあり、その中に新しい一般的なエラーハンドラーを追加したいとします。
この機能は、projAとprojBの間で共有する必要があります。
/src/main/backend/common/errorhandler.cpp
分岐は次のとおりです(マスターから分岐し、最終的にマスターにマージされます。aN/bNはプロジェクト固有の変更です。AN/BNは変更errorhandler.cppです。
したがって、ある時点で、projBで必要なprojAの変更がある可能性があるため、コミットは次のようになります(たとえば、A1をprojBにチェリーピックした後)。
私が読んだことから、A1だけをprojBにマージすることはできません。a1、a2、およびA1をマージします。
projAとprojBの両方がマスターにマージされるときにA1`とA1が別々の変更として扱われることを犠牲にして、projBではA1'になるチェリーピックを使用できます。
私は誰かが私がまだマージを使用できるより良い計画を持っているかもしれないことを望んでいたので、私は「重複した」変更に終わらない。
git - チェリーピック構文をGitし、ブランチをマージします
だから私は以前に数え切れないほどのチェリーピックをしました、そして私は今これで人生で失敗しなければならないようです、私はあるブランチから別のブランチにチェリーピックしようとしています。 -mが与えられていませんか?
それは間違っているように見えます.......それは次のようになります:
いつから-m関数を提供する必要がありますか?
git - Git Cherry-Pick と Git Revert の違いは何ですか?
git revert の動作は、いまだにややこしいと思います。多大な苦痛と誤解の後、git revert は特定のコミットに戻すのではなく、特定のコミットを無効にすることを知りました 。これまでのところ、git cherry-pick は使用していません。
これら 2 つの git コマンドのそれぞれについて詳しく説明していただけますか? いつ、どのように使用するのが好きですか?
git - なぜgitlog--cherry-pickがとても遅いのですか?
指定された2つのタグ間の変更を取得したいのですが、コマンドは次のとおりです。
しかし、それは非常に遅いです。
パラメータを1つずつテストします。を使用した場合にのみ--cherry-pick
、gitログは非常に遅くなります。
なんで?誰かが私を助けることができますか?
git - Git で特定のコミットを新しいブランチに移動する際のエラー
私はこれを持っています:
私はこれを必要とする:
私はこれを試しました:
しかし、私はこれを得ました:
だから私はやっ$git status
たUnmerged paths ... both modified: .gitignore
。再試行する前にgit add
ed とgit commit
ted を実行しましたが、同じエラーメッセージが再び表示されました。
特定のコミットを新しいブランチに移動するにはどうすればよいですか?
git - git-cherry-pick-HOWTO / WHYTO
問題:誰かが開発した機能をテストしたいのですが、それはひどく時代遅れのリモートブランチにしか存在しません。
- チェリーピックはどのように問題を解決しますか?
- なぜgitamまたはgitapplyを使用しないのですか?
git - gitcherry-選択してマージ
私の現在のブランチはbranch-Xです。私はブランチZからコミットYを選択し、後でブランチYをブランチXにマージすることを計画しています。マージ中にコミットYが再度適用されますか?
マティアス
git - サブブランチでコミットを選択し、それをメインブランチにマージするにはどうすればよいですか?
ので、私は持っています:
myBranchでcommitBを選択し、それをマスターブランチにマージしたいのですが、どうすればよいですか?
git - git-cherrypick がコミットすることを何も言っていないのはなぜですか
以下の問題について多くのことをグーグル検索しましたが、実質的な情報を得ることができませんでした...助けてください、一時的なブランチ202116を作成し、gerrit 202116のcherrypickを実行しようとしていますが、以下のメッセージが表示されます。この gerrit をチェリーピックできるのに、なぜこのエラーが発生するのですか?入力を提供してください
git - 履歴に含まれていることを宣言するcherry-pickcommitをgitする方法
私は次のことをしました:
選択されたコミットは、ファイルの1つで、前のコミットですでに行ったのとまったく同じ変更があったため、これらの変更が再適用されなかったことを除いて、きれいに適用されました。
コードに関してはすべて問題ありませんが、履歴にコミットハッシュを含めたいと思います。私の歴史では、それは新しい名前で表示されます。これも可能ですか?私がgitmergeの「私たちの」戦略を読んでいる限り、それは一般的に可能であるように思われますが、単一のコミットに対してそれを行う方法は?
私はこれが欲しいので、後でコミットが私が持っていないものを持っていることを簡単に識別upstream
できます。現時点では、githubnetwork
ビューで、厳選されたコミットは、私が持っていない別のものであると考えています。
追加情報:@CharlesBの言うことは私には理にかなっています。merge -s ours
しかし、魔法はどのようになりますか?この場合、私にとって重要ではありませんでしたcherry-pick
。私が取りたかった変更は1つだけであり、の先端にあるためupstream/master
です。だから私はそれを試してみるために:git merge -s ours upstream/master
今やっているgit log --graph --pretty=oneline --abbrev-commit
と、次のようなものが表示されます。
以前 の同じコマンドgit merge -s ours
は次のようになりました。
コミットaa7117dのチェリーピッキングの後でわかるように、aa7117dがすでに私のフォークリポジトリに適用されているという兆候はありませんでした。しかし、マージ後、ファイル内に何も変更されていなくても、そこにあることが示されます。
そのため、アップストリームに適用されたとおりに正確に適用されていなくても、ブランチに含まれるいくつかのコミットを宣言することは確かに可能であると思います。
update2:Gitで特定のコミットをマージする方法とそのベストアンサーの質問が表示されます。ですから、なぜそれが不可能なのか、あるいは実装されていないのかについての説明もいただければ幸いです。