2013-07-04 46 views
0

我是Git的新手。 我有以下设置。合并更改到特定文件从一个分支到其他git

设置:

master-branch:我的项目的主要稳定分支。其实,它包含我的网站的HTML代码。

当我上传在网络上的文件,我在做一些index.html的变化来调整适当的文件位置。 所以我有同一个文件的两个版本:masterbranch(mbVersion)和网络(wVersion)

我做了什么:

现在我已经做了在mbVersion一些变化。我想要在wVersion中进行这些更改。 (但我不想改变wVersion链接到老mbVersion)

我打算做:

我想创建web版的一个新的分支(比如网络分支) ,然后将主分支的特定提交合并到Web分支。

问题:

  1. 我这样做对吗?还有其他更好的方法吗?

  2. 如果这是正确的方式,将合并的具体承诺的网络分支给我所需的更改,不改链接?那么,我如何合并?我打算使用此:How can I merge a specific file from one branch into another branch in Git

  3. 我用普通摘樱桃?

我曾尝试:

我试图http://jasonrudolph.com/blog/2009/02/25/git-tip-how-to-merge-specific-files-from-another-branch/,但它不会合并这两个文件的内容。它基本上只是在文件上写下来,而不是实际上合并文件的内容

实际上,这是一个很大的项目,有20多人正在研究它。所以,我不想搞乱任何东西。

回答

0

你想pull最新的改变来自mbVersion,但你想确保你在wVersion中对某些特定文件所做的更改不会迷路了吧?

在这种情况下,你可以pull如常。 Git认为你在wVersion中进行了更改,这些更改不会被直接覆盖。在pull后,您会得到以下两种:

  1. 如果没有一个工作(在mbVersion)您在wVersion更改的链接 - 您的拉动将干净(自动合并)应用到这些链接。
  2. 如果一些链接在mbVersion改变从mbVersion最后pull后的 - 你会得到合并冲突。在这种情况下,请告诉git保留本地更改。

注意我认为您的工作流程包括pull S型mbVersion到wVersion,而不是其他方式。如果您从wVersion执行pull回到mbVersion - 此方法可能无效!

1
  1. 我觉得为他们创建两个单独的分支是一个好主意。

  2. 确保你在wVersion并合并mbVersion,git将按照你的预期完成工作。

  3. 我个人不推荐cherry-pick,因为cherry-pick实际上做的是根据特定提交及其父项的差异进行补丁,然后将其应用到当前分支。它可能会在未来的合并中造成冲突,因为cherry-pick只关心文件而不关注历史。

相关问题