如何在不合并所有其他分歧的情况下将我最近提交的结果应用于另一个分支?

时间:2017-09-14 12:27:29

标签: git merge

我有两个分支:

mastertranslation

基本上,translation是相同的,但所有字符串都是西班牙语,而不是英语。

我在我的master分支上开发了一些新功能,我希望在我的translation分支上也有这些功能。

但是如何在不用英文字符串覆盖所有西班牙语字符串的情况下执行此操作?

cherry-pick吗?我是否有其他选择,我没有放松合并功能,例如bdonlanhow to merge a specific commit in Git上的答案?

1 个答案:

答案 0 :(得分:2)

我将给出一个与Git有些不同的答案,因为我相信它的重要性。为不同语言保留单独的分支是不好的设计。正如您现在所看到的,如果您在一个分支中进行功能改进并希望将其带入另一个分支,则无法轻松完成。

相反,请考虑使用消息包,它可以从逻辑上单个应用程序处理所有语言支持。 Java,JavaScript和大多数语言都支持捆绑包。

如果您绝对必须继续当前的路径,那么您别无选择,只能进行合并或挑选,并且可能会覆盖您的某些语言材料。让我们考虑最糟糕的情况以及如何处理它。

假设您执行了从mastertranslation的挑选,导致您的西班牙语支持代码的所有被英语代码覆盖。让我们更加丑陋,并假设甚至没有任何合并冲突,即Git愉快地引入了该功能并覆盖了西班牙语代码而没有窥视。现在你有一个提交,但你可以通过几种方式处理这个问题。您可以使用其西班牙语父级还原每个特定于语言的文件,然后通过以下方式修改提交:

git commit --amend

这将以您希望的方式重写樱桃选择或合并提交,即使用新功能完整的西班牙语特定代码。

你可以感觉到,如果你继续走这条路可能会变得丑陋,所以考虑使用语言包。