我正在研究的当前项目,我正在尝试探索一堆通常表现为一堆功能分支的不同想法.我正在处理的功能通常是彼此正交的,所以有时我想合并所有这些功能(或功能的某些子集)并一起测试它们.
到目前为止,我的工作流程一直是这个-我有分支机构featureA,featureB,featureC我会呼吁一个分支featureA_featureB,然后又一个像featureA_featureB_featureC等
我有两个问题:
featureC,但由于我在featureA_featureC分支,我不小心提交到这个分支(我真的需要停止使用git commit -a).然后,我必须挑选提交或做一些其他疯狂的事情,以使提交到正确的地方.提前致谢!
我有一个共同的分支,例如“开发”,我所有的功能分支都会从那里分支出来。
develop
|----featureA
|----featureB
|----featureC
Run Code Online (Sandbox Code Playgroud)
然后一旦你想测试一些东西,只需从功能分支合并到你想要的组合中的开发,例如
git checkout develop
git merge featureA featureB
./test.sh
Run Code Online (Sandbox Code Playgroud)
如果您对测试感到满意,请保持提交。如果不做
git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)
并且您将按照合并之前的方式进行开发。这样你只需要你的功能分支,你可以用任何组合来试验它们。请记住,只要您提交了任何内容,您就可以通过检查 reflog 始终恢复到该状态。
对于你的git commit -a问题,做
git reset --soft HEAD^
Run Code Online (Sandbox Code Playgroud)
并且您拥有提交之前的索引。然后只需切换到另一个分支并在那里提交。
| 归档时间: |
|
| 查看次数: |
12452 次 |
| 最近记录: |