【发布时间】:2014-04-17 12:56:37
【问题描述】:
是否可以使用 Git 选择性地将更改从一个分支应用到另一个分支?
更具体地说,我为 GitHub 使用公共 dev 分支和用于部署的私有 master 分支。当对一个分支进行更改时,它们将需要应用于另一个分支,但某些代码行需要保持不同。就我而言,它是一些 CSS 类和一个提要。
我是 Git 新手,但我已经进行了研究:
git merge --no-commit --no-ff可以使用后跟git mergetool在发生冲突时选择我想要的内容。问题是它只适用于 Git 无法自动合并的冲突,所以在我有机会使用我的合并工具之前,我想要保持不同的东西被替换了。git difftool --cached很有用,因为它可以让我看到差异,但我需要从那里复制我想要保留的内容并用文本编辑器手动替换它,因为我不能像我一样简单地选择和保存可以用mergetool。git cherry-pick似乎将一个指定的提交应用到另一个,但我想要保持不同的可能分散到不同的提交中,而这些提交可能不仅包括我想要保持不同的内容。除非我做出让我发疯的数百万次提交,否则我看不到这个工作。
还要明确一点,我不希望一个分支变成另一个,合并似乎是这种情况。 我想要两个具有各自差异的独立分支,并将更改从一个应用到另一个。
是否有更好的工作流程允许我通过应用更改并保留一些差异来保留开发和部署版本?如果可以找到解决方案,我不介意使用单独的存储库或不同的工具。
【问题讨论】:
-
所以,基本上你有时可能只需要提交的一部分,这可能是从单个文件中的某些行到提交中的多个文件中的几个文件?
-
合并时我需要保持几行不同的代码,例如一个分支中的白色背景和另一个中的黑色背景。我想合并同一文件中的其他更改,因此文件排除不能解决所有情况。
标签: git github workflow git-merge kdiff3