Git工作流和重基

Git工作流和重基,git,version-control,merge,Git,Version Control,Merge,刚从Git开始,我想从右脚开始。我做了一些研究(例如),推荐的工作流程如下: -仅限一次:将中央回购克隆为个人回购 -创建一个开发分支 -开发分支机构 -如果主分支确实已更新,则经常拉动主分支(从中央回购获得更改),并在更新的主分支上重新设置开发分支的基础 -在“开发”分支上开发功能完成后,合并主控形状和“开发”分支(再次拉动主控形状后) 关于这一点,我有几个问题: 当更新后的主分支和开发分支(来自编辑同一文件的开发人员)之间的合并冲突导致重新基础失败时,您是否应该中止并切换到合并 为什么要在功

刚从Git开始,我想从右脚开始。我做了一些研究(例如),推荐的工作流程如下:

-仅限一次:将中央回购克隆为个人回购

-创建一个开发分支

-开发分支机构

-如果主分支确实已更新,则经常拉动主分支(从中央回购获得更改),并在更新的主分支上重新设置开发分支的基础

-在“开发”分支上开发功能完成后,合并主控形状和“开发”分支(再次拉动主控形状后)

关于这一点,我有几个问题:

  • 当更新后的主分支和开发分支(来自编辑同一文件的开发人员)之间的合并冲突导致重新基础失败时,您是否应该中止并切换到合并

  • 为什么要在功能完成时合并而不是再次重定基址

  • 我是否应该在每次完成功能开发或修复bug时都进行推送

  • 当您在重定基址过程中遇到冲突时,您可以简单地解决冲突并继续重定基址。中止并执行合并不会有任何帮助,您仍然会遇到冲突

  • 无论是否在
    master
    上重新设置功能/开发分支的基础,在使用完某个功能后,您都会希望进行合并。rebase事先所做的区别在于,它让您有机会以(希望如此)更清晰的方式重写、构建、塑造和呈现您的历史,而不仅仅是进行合并,从而导致合并提交(也称为“非快进”合并)

    然而,有些人喜欢创建合并提交,只是为了显示分支发生的位置。通过使用“非快进”标志,即
    git merge--no ff
    ,即使在重新基址之后,也可以强制合并提交

  • 是否在完成功能或bug修复后推送取决于项目,以及如果要共享代码,您希望如何与其他人共享代码