Git を使用して、あるブランチから別のブランチに変更を選択的に適用することは可能ですか?
具体的には、dev
GitHub にはパブリック ブランチを使用し、master
デプロイにはプライベート ブランチを使用しています。1 つのブランチに変更が加えられた場合、それらを他のブランチに適用する必要がありますが、一部のコード行は異なるままにしておく必要があります。私の場合、いくつかの CSS クラスとフィードです。
私はGitを初めて使用しますが、調査を行いました:
git merge --no-commit --no-ff
の後に a を使用してgit mergetool
、競合が発生した場合に必要なものを選択できます。問題は、Git が自動的にマージできない競合に対してのみ機能することです。そのため、マージツールを使用する機会を得る前に、異なるままにしたいものが置き換えられます。git difftool --cached
違いを確認できるので便利ですが、mergetoolのように単純に選択して保存することはできないため、そこから保持したいものをコピーして手動でテキストエディターに置き換える必要があります.git cherry-pick
特定のコミットを別のコミットに適用しているように見えますが、異なるままにしたいものが別のコミットに散在している可能性があり、これらのコミットには異なるままにしたいものだけが含まれているわけではありません。何百万回もコミットしない限り、これが機能しているとは思えません。
また、明確にするために、あるブランチが別のブランチになることを望んでいません。これは、マージの場合のようです。それぞれの違いを持つ 2 つの別々のブランチが必要で、一方から他方に変更を適用します。
変更を適用し、いくつかの違いを維持することで、開発バージョンと展開バージョンを維持できる、より良いワークフローはありますか? 解決策につながる場合は、別のリポジトリや別のツールを使用してもかまいません。