問題タブ [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コミット範囲の「A..B」(ダブルドット)と「--right-only A...B」(フィルタリングされたトリプルドット)?
比較Git コミット範囲のダブルドット ".." とトリプルドット "..." の違いは何ですか? 、より頻繁に役立つ質問です。
以下が と同じ一連のコミットを生成するかどうかを明確にしたいと思いますgit log A..B
。
それらは、同じことを達成するためのより回りくどい方法のように思われます。
最初の動機は、これらのコマンドの意味をより深く理解することでした。これには、すでにチェリーピックされたコミットを無視することが含まれます。
この質問の拡張は、この種の「一方的な」チェリーピック除去を行うために、対称差 (つまり、トリプル ドット) が必要な理由を尋ねることです。たとえば、チェリー ピックの修正を含む、B での一意のコミットを見つけるには、次のような簡単なことはできないはずです。
それは、すべての A コミットをA..B
. (つまり、この架空のコマンドでは、git は、チェリー ピッキング ロジックを適用しようとする前に、A に関連するものをすべて破棄します。)
git - パッチを共有せずに git でパッチが適用されたワークスペースを管理する
私はSVNでgitを使用しており、dcommit経由でプッシュしたくないというコミットがありますが、ローカル開発を行う必要があります。
私が今やっている方法は、
作業ブランチでは、git-svn タグの後のコミットには、mypatch
その後を含むコミットがあり、変更セットに対して実際に行う作業です。
気になったのは、ブランチ上で????
2回目のコミットとして指定できるかどうかです。そうすれば、ログを調べて自分でリビジョンを見つける必要がなくなります。git-svn
work
git - Git チェリーピックと競合
2 つの異なる git ブランチがあります。1 つでは、開発は (Branch1) で行われます。
他のブランチでは、いくつかの PoC 作業が進行中です (Branch2)。ここで、Branch1 から Branch2 への変更をチェリー ピックして、Branch2 を最新の状態にします。
現在、4 つまたは 5 つの変更をチェリー ピックした後、マージの競合が発生し、それ以上チェリー ピックを続行できません。
次のチェリーピックに進む前にすべての競合を解決する必要がありますか、または、すべての変更をチェリーピックする (そしてすべての競合を一緒に解決する) まで競合の解決を延期できますか?
さらに、この場合、チェリーピックまたはブランチマージを行うことをお勧めしますか?
git - Git:マージコミットを発生させずにアップストリームの変更をマージする方法は?
I have (コミットはアルファベット順に作成されました)
topic
ブランチを次のように見せる方法はありますか
マージコミットを導入せずに?
通常、私はただするだろう
しかし、Y
とは と の後にZ
コミットされたため、早送りは機能しません。W
X
巧妙なリベースまたはチェリー ピッキングが機能する可能性があると思われますが、頭を包むことはできません :{
git - git-cherryで「チェリー」とはどういう意味ですか?
git-cherry のチェリーという言葉の意味は何ですか?
果物のほかに、チェリー ピッキング式 ( git-cherry-pick を使用して git にも存在する) の単語にしか見えませんでした。これは、何かを選択的に選択することを意味します (右?)。
私には、チェリーインgit-cherry
が果物にもチェリーピックにも関係していないように見えます.
私はブラジル人なので、英語の微妙なところがはっきりしないことがあります。
git - チェリーピックによって生成された Git の競合
はじめに、私は git を初めて使用しますが、ドキュメントや、 thisやthisなどのトピックに関する同様の問題を食い尽くしています(この後者の質問については、記事の後半で参照します)。
概要:あるブランチから別のブランチへのコミットをチェリー ピッキングしていました。あるブランチでコミットを行った後、それらをマージしようとすると、競合が発生しました。何が起こっていると思うかについては、以下の私の回答を参照してください。
シナリオ: 2 つのファイルがあり、1 つは "master" ブランチにあり、もう 1 つは "secondary" ブランチにあります。"secondary" ブランチには、master に含めたくないファイルがいくつか含まれており、少数の人しか使用していませんが、"master" と "secondary" の両方にあるほとんどのファイルは一貫している必要があります (master のすべてはただし、セカンダリのすべてがマスターにあるわけではありません)。これを達成するために、「マスター」で行われた変更をコミットしgit checkout secondary
、「セカンダリ」ブランチをチェックアウトしてから実行していgit merge master
ます。残念なことに、私は一度対立を引き起こしました。そして今、私の脳は対立が何であるかを理解しようとして急いでいます.
試みられた解決策:最初は、私が持っていた「セカンダリ」と「マスター」の両方でファイルを変更したためだと思いました。これを解決するためgit cherry-pick [commit]
に、セカンダリ ブランチで行った変更をマスター ブランチにプルしていました。ただし、マスター ブランチをセカンダリ ブランチにマージすることはできませんでした。Git は、git add/rm
(おそらくgit add
またはgit rm
、理解するのに少し時間がかかりました) を使用して、必要なものをマークすることを提案しました。そこで、 git rm コマンドを使用して、「セカンダリ」のインデックスと作業ツリーのバージョンを削除しました。この後、「マスター」ブランチに戻り、マージしたいファイルを「セカンダリ」に再コミットし、「セカンダリ」に戻ってから、git merge master
再度実行しました。残念なことに、対立します。
質問:率直に言って、何が起こっているのかわかりません。git merge master
(セカンダリ ブランチで実行すると) git master commit で行われたすべての変更が取得され、それらの変更がセカンダリ ブランチに配置されると思いました。それが起こっているのなら、私は問題を理解していません。セカンダリからファイルを削除し、変更をマスターにコミットしました。なぜマージできないのですか?先に言及した後者の質問に対する解決策は、共通の祖先に何か他のものが含まれているためである可能性があることを示唆していますが、私はそれをgit cherry-pick [commit]
処理しただろうと思いました. 問題は、cherry-pick
が新しいマージ ベースを作成しないため、問題のファイルが の後は同じであったとしても、マージ ベースとはcherry-pick
異なる可能性があるということですか?
この質問の長さをお詫び申し上げます。理解しようと一生懸命努力しており、円を描いているように感じます。どんなアドバイスも素晴らしいでしょう。
編集:なぜgitがブランチを変更してこの問題を解決しようとしないのか理解できないので、私も混乱していると思います。今試しgit checkout secondary
てみると、おそらくcherry-pick
コミットがセカンダリに変更され、error: you need to resolve your current index first
. gitがこの動作を許可しない理由があるに違いないと思いますが、それが何であるかわかりません。
git - 複数のコミットのチェリー ピッキング
メインブランチにはメッシュアップされた 33 個のコミットがあります。これからはきちんと記録を残す必要があります。これで、機能ブランチを作成し、これらの 33 個のコミットをさまざまな機能ブランチに分類しようとしています。一度に複数のコミットを選択して、関連する機能ブランチにコピーすることは可能ですか? また、cherry-pick コマンドで複数のコミットを試みたときにも、競合に直面しています。
ここで、A、B、C はコミットのハッシュコードです。
git - git プルリクエストからコミットを削除
私はオープンソースへの貢献の初心者なので、これは私の最初の試みの 1 つです。
というライブラリ(gem)を開発しましたvalidates
:https://github.com/kaize/validates/
私は2つのブランチを作成しましたgit checkout -b branch_name
:
https://github.com/kaize/validates/pull/20 と https://github.com/kaize/validates/pull/19 を作成してコミットしますが、ip-validator プル リクエストにコミットBlank validator
399cdd7
。
このプル リクエストから削除するには (そして空白のバリデータ ブランチに配置するには)、どうすればよいですか?
みんな、世界をより良くするために私を助けてください!
git - git merge --no-commit vs git cherry-pick --no-commit
と の間に違いはgit merge --no-commit
ありgit cherry-pick --no-commit
ますか?
これら 2 つのコマンドの後にコミットすると、履歴に違いはありますか?