GIT合并和重设基础工作流确认?
我已经阅读了一些其他人关于合并与重基、使用什么以及何时使用的问题,但我仍然有一些问题要问一般GIT用户。首先,让我发布我所理解的良好GIT实践:GIT合并和重设基础工作流确认?,git,version-control,Git,Version Control,我已经阅读了一些其他人关于合并与重基、使用什么以及何时使用的问题,但我仍然有一些问题要问一般GIT用户。首先,让我发布我所理解的良好GIT实践: 从现有分支A创建新分支B 在分支B上添加/提交更改 从分支A重新设置更新的基础 将更改从分支B合并到分支A“ 根据我目前所了解的情况,当使用Hierarchical分支模型(即a=主分支,B=实验分支用于处理新功能)时,上述工作流最有效。简言之,重新设置树的基础并合并回主分支是很好的。我的想法正确吗 现在,如果与可能提交/合并更改到(主分支)的其他开发
不,过度使用rebase不是一个好主意。我一开始是这样做的,但除了合并和重置之外什么也没做。看看。它基于
简言之,你希望你的工作有条理。将分支A作为分支B的基础将它们联系在一起。这可能是一件坏事。如果A中的某件事情不好,那么“撤销”可能不是一件小事“你的理解是正确的。如果没有任何东西触及A,那么您的重新基准将是不可操作的。A不变的好处是您知道不会有冲突 但是,使用所有合并将创建不必要的提交。如果您在源于主分支的要素分支中工作,则重定基址可以保持历史记录的整洁。但是,如果您要合并到一个发布分支中,那么我同意使用
merge
+--no ff
是一个更好的方法,因为您将有一个新的commit to标记。“clean history”被高估了。通过重新重置和合并,可以从要素分支中删除所有中间提交。或者,如果您想通过手动添加sha_1来合并头并提交所有功能,您可以伪造八达通合并。使用log或gitk的set符号以及--无合并
和git分支--contains
来查看您的位置。gitk中漂亮的线条并不是软件开发的最终目标。谢谢你的回复!用主分支的最新代码替换当前分支,然后重新应用分支特定的提交,这不是从本质上重置了当前分支的基础吗?我浏览了你的文章,但这篇GIT文章对我来说太新鲜了,有一半的术语我都看不懂:(不过我会花一些时间重读你的文章。看起来你提出了一些好的观点。也许我也会去看nvie的。你的与nvie的有何不同?一个版本的每个功能都是从同一点开始的。nvie的流程允许分支从点开始,因为其他一些功能已经集成了。这将它们结合起来,我的pProcess没有。我只是通读了nvie的工作流程帖子和您的工作流程。我了解nvie的工作流程,但我对您的工作流程还有一些问题。所谓“发布的每个功能都从同一点开始”,您的意思是开发分支不允许提交(根据nvie的术语)版本发布之间?这意味着所有功能分支基本上都必须从上次发布的版本开始,对吗?