我了解最好在单独的分支中开发每个功能和错误修复,以使存储库所有者更容易评估拉取请求。
我的工作流程是我
这很好用。但是,如果我在处理第二,第三或第四个功能时,想要使用具有以前分支累积更改的代码库,该怎么办?但是当我提交这个分支时,我不想包含这些更改。
可能是第一个分支修复了已破坏的东西。当我在第二个分支上工作时,我需要使用前一个分支中累积的代码库,但是当我提交第二个分支时,我只想提交我正在第二个分支中进行的更改。
这种工作流程是否有意义?
我如何使用git这样工作?
答案 0 :(得分:1)
有几种方法可以做到:
补丁是每次提交生成的差异 换句话说:补丁将每个提交中的更改包含为单独的diff文件 生成补丁后,您可以将它们应用于您希望的任何给定分支。
git format-patch HEAD~X # generate the last X commits as patch
现在您将拥有包含提交代码的单独文件,您可以更改分支和apply
补丁
git checkout <new branch>
git apply *.patch
#or:
git am *.patch
cherry-pick
cherry-pick
只是为任何分支选择任何所需的提交
由于git使用提交的方式没有附加它们,你只需选择它们到任何给定的分支。
您可以按commit
使用多个cherry-pick
。
git checkout <branch name>
git cherry-pick commit1 commit2 commit3 ...
这将导致&#34;导入&#34;希望提交到当前分支。