我使用git并在拉取请求后将分支合并到master中。
我的理解是,如果master中的文件自上一个共同祖先以来没有被更改,但是分支中的文件相同,git将在合并期间使用分支中的版本。
对于两个分支之间的大多数差异,这是我想要的行为,但是在一个子目录树中有一些文件,我希望合并保留主版本并丢弃分支版本。
这是一个很好的基于命令行的工作流程吗?
答案 0 :(得分:3)
最简单的选择是使用git merge --no-commit --no-ff
合并所有内容,并在提交所有内容之前停止在最后一步。然后重置/签出那些需要保持不变的文件,然后运行git-commit
。每当您进行不希望合并到master
的更改时,您都需要这样做。这种方法的风险在于你可能会忘记一些差异/文件,并且它们最终会出现在同事的存储库中而没有明显的理由。
另一个更复杂的选择是创建两个分支,让我们称它们为tests
和features
。分支features
包含您要合并到master
的更改,而分支tests
包含其他更改。因此,您会继续将features
合并到master
和tests
上。这消除了上述风险,使其成为最佳选择。
第三种选择是继续合并,然后进行提交,以恢复那些你不想改变的事情。这使您的同事更难理解您的贡献。
答案 1 :(得分:1)
我想有很多方法。我会做什么:
另一种方法是在合并后恢复所有触及文件的提交(如果可能)。