git - 维护两个具有固定差异集的 git 分支

标签 git git-merge branching-and-merging

我正在使用一个共享的 git 存储库,它有两个主要分支,一个用于产品交付,一个用于特定的测试平台。两者之间存在一组必须维护的固定差异(数千个附加文件,加上对现有文件的一些更改),但除此之外,我想将任一分支中的更改 merge 到另一个分支中。

问题:每次我从一个 merge 到另一个时,都会包括那组差异,所以我必须在完成 merge 之前删除差异。这在两个方向上都会发生,所以我总是从“假”变化中挑选出真正的变化。

如何以 Git 友好的方式维护这两个分支,这样我就不必一直说服 Git 忽略这些更改?

最佳答案

正确的做法如下:

  1. 选择两个分支中的一个作为“master”分支,另一个作为“dependent”分支
  2. 当master分支有变化时,使用merge将变化带入从属分支
  3. 当从属分支发生更改时,将提交挑选回主分支。

Git 会记住两个分支之间的“固定”差异,作为依赖分支上历史提交的产物,并且在从主分支 merge 到依赖分支时将保留这些差异。正如我所注意到的,如果我从依赖项 merge 回主分支,Git 会尝试将这些差异带回主分支; cherry-pick 避免了这些变化,只会带来"new"差异。 (这确实意味着您必须跟踪必须引入主提交的依赖提交,但似乎没有办法解决这个问题。)

关于git - 维护两个具有固定差异集的 git 分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50063474/

相关文章:

git - Bitbucket Cloud 中的级联 merge

Git 在 checkout 后显示大量更改和未跟踪的文件

git - 使 'git log' 忽略某些路径的更改

Android Studio 在执行 git merge 时卡住

git - 在git中,在新代码添加到master后,是否可以从master merge 到最初从master创建的分支?

git - 在什么情况下 `git pull` 可能有害?

Git - 每个分支的不同远程

git - 何时在 Git 中使用 '--no-ff' merge 选项

GIT:分支期间会发生什么?

branching-and-merging - 如何在 Source Tree 的多个分支中提交代码