IマスターからXを分岐し、マスターからいくつかのコードYを削除しました。私はXからXへのコードをマージするときに、どのようにYをマスターに戻すようにするのですか?(Xからは削除されていないので)ブランチ後にマスターからの特定のコードが削除されたときにGitブランチとマージする
答えて
git merge
を実行するだけで、このコマンドが実行されます。
Y
とX
の変更をまとめて試行します。
ブランチを作成し、masterのコードを変更して(少なくともこの部分で)変更されていないブランチをマージすると、そのコードは戻ってこないでしょう。
Gitは変更( "コミット")についてです。マスターが変更されたのと同じ場所にある部分を変更したブランチをマージすると、通知が得られ、マージが一時停止されます。それ以外の場合は、がマージされたとなります。
あなたが最終的にgit checkout master && git merge branch-X
を実行すると、Gitはします:
- は
master
の現在の先端のマージベースを見つけて、その名前branch-X
解決さをすることを約束します。塩基を各枝先端と比較するために、2つの枝チップを比較する; - この組み合わせをマージベースのコンテンツに適用して、結果の変更セットを結合し、マージされたコンテンツを作成しようとします。
master
側の変更が行Y
のいくつかのセットを削除含まれている場合、それはステップ3に入力の一つだ場合を除き3.
をステップ入力の一つである、それを回避する方法はありませんあなたは別のマージ戦略を使用します -merge戦略は完全なコントロールを持っているため、上記の3つのステップの一部または全部を修正することも、それらのステップの一部または全部を削除することもできますステップ3の間:
- 自分自身(またはマージしている人)のメモを残す。たとえば、削除された行を、「マージングするときには、後でここに戻してください」と叫ぶ行に置き換えます。
- マージ競合をに配置しようとすると、コミットが将来
branch-X
の先になるようにするには、同じ行セットの変更が含まれていることを確認してください。
マージ(あなたまたは他の誰か)が誰でも鋭い警告を見るので、両方を行うことは成功の確率が最も高くなります。しかし、これらの準備ステップの両方が、将来のある時代の誰かによって、取り消される可能性があることに注意してください。git merge
それを防ぐためにできることは何もありません。実際には、将来的に、git merge
を実行します誰
は、git merge -s <strategy-name>
を経由して、このコントロールを持っています。しかし、現時点で、また私が近い将来に考えているところでは、は魔法のマージ戦略ではありません。だからこれはほとんど役に立たない。
ありがとう!私がやろうとしていること。 –
しかし、あなたは別の戦略( "マージ戦略"ではなく、Gitの全面的な使用)によってより効果的になるかもしれません:束の行を削除する 'master'へのコミットの代わりに' for-now 'これは一連の行を削除します。 'master'をそのまま使用し、実際に準備が整うと思うまで、for-nowを使って展開してください。 – torek
ええ、私がこの状況で終わった唯一の理由は、たくさんの人が同時に機能を書いていて、2ヶ月後にそのうちの1つを削除することになったからです。それまでに何千ものコミットがあったので、それをマスターから削除する方が簡単だったようだ。しかし、これは動作するために必要な別の機能を示し、支店Xに存在し、Xがマスター---爆発 –
- 1. マージ後のgitブランチをマスターに自動的に削除
- 2. 子ブランチがマスターにマージされた後、孫のブランチをマスターにマージ
- 3. マスターとマージされたブランチでGitスカッシュがコミットします
- 4. Git:ブランチへのブランチのマージまたはブランチへのマスター
- 5. マスターとブランチ間のGit移動コード
- 6. ブランチが既にマスターとマージされた後、そのブランチを修正するには?
- 7. gitのブランチとマージ
- 8. gitハウスキーピング - マージされたブランチを削除する
- 9. 私のブランチからスパンしたgitブランチをマージするには?
- 10. Git - Recoverローカルとリモートから削除されたブランチ
- 11. 特定のブランチをgitとマージするには?
- 12. Git rebase/masterがブランチからマスターに変更されました
- 13. どのようにマージするためにマージされたgitブランチを一覧表示し、ブランチがうまく見えたら削除できますか?
- 14. サブブランチのトランクにブランチをマージした後、そのブランチを削除しますか?
- 15. Git:マスターを新しいブランチにマージしてマスターをクリアする
- 16. マージ後のGitブランチとコミット履歴
- 17. マージされたすべてのgitブランチを削除する - 致命的:ブランチ名が必要ですか?
- 18. マスターにマージ(ブランチなし)
- 19. マージ後のGithubエンタープライズAPI削除ブランチ
- 20. git masterブランチからコードを一時的に削除する
- 21. GIT - マージ後にブランチが閉じない
- 22. ブランチが誤ってGitの別のブランチにマージされたときをチェックする方法?
- 23. マスターに変更が加えられた後にgitブランチを作成する
- 24. gitでマスターの問題にdevブランチをマージする
- 25. git-flowの機能ブランチにブランチをマージできますか?
- 26. git cloneの後に削除されたブランチを回復するには?
- 27. マスターを自分のブランチにマージするときにマージを取得する
- 28. チェリーをマスターからブランチにしてからブランチからマスターにマージするときに繰り返しコミットすることを避ける
- 29. git - リモートの特定のブランチに特定のブランチをプッシュ
- 30. 特定のマージされたブランチのコミットをGitのマスターブランチから除外する方法は?
私はこれを理解しています。これを克服する方法はありますか?愚かなコピーの貼り付け以外の方法はありますか? –
あなたが望むものを手に入れたら、それはまったくのgitではありません。これは、マスターブランチのすべての変更を元に戻します。ブランチはバックアップスナップショットではありません。ただし、2つのブランチ間でdiffを作成して、復帰コミットを作成することはできます。 – clemens321
別の方法は、 "git reset"を使うことです。これは、ブランチrefを他のコミットに変更します。ただし、リモートリポジトリを操作する場合、他のコミットが削除され、非転送アクションが発生する可能性があるので注意してください。 – clemens321