7

这是场景。我在“master”分支上做了一个“dev”分支,并做了一些新的提交。其中一些更改将仅与我的本地开发机器相关。例如,我将 URL 变量更改为指向本地 apache 服务器,而不是在线发布的真实 URL(我在测试阶段这样做是为了提高速度)。现在我想将 dev 分支中的更改合并到 master 分支中,但不是那些仅在我的本地环境中有意义的更改。

我设想了类似 merge --patch 的东西,它允许我选择我想要逐行合并的更改。

或者,也许我可以签出“master”分支,但将文件保留在我的工作目录中,就像它们在“dev”分支中一样,然后执行 git add --patch。那行得通吗?

4

2 回答 2

6

一种方法是合并来自另一个分支的更改,但在提交合并之前删除特定于开发的内容。

首先,获取更改,而不用git merge --no-ff --no-commit dev.

git add通过编辑受影响的文件并编辑它们,或git reset HEAD受影响的文件然后git add --patch是您想要的部分来删除特定于开发的更改。

然后提交合并。进行合并提交的一个优点是未来的合并将是无痛的。因为开发特定的提交被认为是合并的,未来不涉及开发特定部分的合并可以使用简单的git merge dev. 通过这种方式,您可以无限期地维护一个具有自己配置的单独分支,同时仍然可以轻松地将更改合并到主分支中。

于 2012-04-06T00:21:23.090 回答
2

也许你可以尝试这样的事情?

git merge --squash --no-commit $YOUR_OTHER_BRANCH
git reset HEAD
git add -p
git commit
于 2012-04-05T23:25:59.030 回答