我认为这个问题的答案分散在文档和其他问题的某个地方,但我找不到与我的情况完全相关的东西,所以我发布了这个。请随时向我指出其他地方的任何相关答案。
我有三个分支:wip
, deploy-dev
, client
.
wip
是我们团队内部的工作分支。它包括第 3 方密钥/秘密和一些本地环境配置。deploy-dev
也是内部的,但它有不同的配置来测试部署的版本。client
是被推送到客户端远程的分支。它删除了我们用于测试的第 3 方密钥/秘密。
问题
我的wip
分支有很多提交。对于客户端的第一个版本,我想将它们压缩成一个提交。所以我这样做了:
git checkout -b client
git reset --soft <first commit>
git add .
git commit -m "v1.0 release to client"
在client
分支中第一次提交之后,我想wip
再次签出并继续在 v1.1 上工作。然后我应该能够分别结帐deploy-dev
并client
合并wip
到它们中。
但是,当我结帐时client
,git merge wip
我会将整个提交历史记录返回到client
.
我错过了一些简单的东西,但如果不描述整个情况,我不知道如何描述它。谢谢您的帮助。