0

我是 Git 的新手。我有以下设置。

设置:

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

当我将文件上传到网络上时,我对 index.html 进行了一些更改以调整正确的文件位置。所以我有同一个文件的两个版本:masterbranch (mbVersion) 和 web (wVersion)

我做了什么:

现在我对 mbVersion 做了一些更改。我想要 wVersion 中的这些更改。(但我不想将 wVersion 中的链接更改为旧的 mbVersion)

我打算做什么:

我正在考虑为 Web 版本创建一个新分支(例如 Web-branch),然后将特定提交从 master-branch 合并到 Web-branch。

问题:

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

  2. 如果这是正确的方法,将特定提交合并到网络分支会给我所需的更改而不是更改链接吗?那么,我该如何合并呢?我打算使用这个:如何将特定文件从一个分支合并到 Git 中的另一个分支

  3. 我应该用樱桃采摘吗?

我尝试过的:

我试过http://jasonrudolph.com/blog/2009/02/25/git-tip-how-to-merge-specific-files-from-another-branch/但它没有合并两个文件的内容. 它基本上只是覆盖文件而不是实际合并文件的内容。

实际上,这是一个很大的项目,大约有 20 人正在研究它。所以,我不想搞砸任何事情。

4

3 回答 3

1

我建议根据代码的部署位置,在您的配置中只设置一个分支和分支。使用 git,您可以使用涂抹过滤器来支持它,如下所述:https ://stackoverflow.com/a/13616911/758345

于 2013-07-04T08:49:49.527 回答
1
  1. 我认为为他们创建两个单独的分支是个好主意。

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

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

于 2013-07-04T08:57:30.727 回答
0

您想pull从 mbVersion 获取最新更改,但您想确保您在 wVersion 中对某些特定文件所做的更改不会丢失,对吗?

在这种情况下,您可以pull像往常一样。Git 看到您在 wVersion 中进行了更改,这些更改不会立即被覆盖。之后,pull您将获得以下两项之一:

  1. 如果没有人在您在 wVersion 中更改的链接上工作(在 mbVersion 中) - 您的拉动将被干净地应用(自动合并)到这些链接。
  2. 如果其中一些链接在最后一个pull来自 mbVersion 之后在 mbVersion 中发生更改 - 您将遇到合并冲突。在这种情况下,只需告诉 git 保留本地更改。

注意我假设您的工作流程将pullmbVersion 格式包含到 wVersion 中,但不是相反。如果您pull从 wVersion 回到 mbVersion - 这种方法可能行不通!

于 2013-07-04T08:50:35.613 回答