有一个规则是不要对已经推送到远程仓库的提交进行变基。虽然我理解这个规则的一般原因,但对于以下情况是否适用并不清楚:
假设我正在开发某个功能,需要几天时间。因此,我创建了MyFeature分支,并检出它,然后提交了一些内容。由于工作需要几天时间,我不想将其保留在本地机器上,所以为了备份,我将此分支推送到远程。
完成工作后,我想以某种方式将其合并到主分支中。
我的问题是:
1.假设没有其他人会检出和拉取MyFeature分支,并基于该分支的提交进行工作(为什么有人想要拉取一些随意的分支?),使用--force选项重新设置此远程分支是否可以?
2.如果出于某些原因仍然不建议这样做(尽管我想了解那个原因),那么替代方案是什么?简单的合并?但是如果这样做,之后,我仍然希望从本地和远程存储库中删除MyFeature分支。那么它与(1)有何不同?我仍然通过完全删除它来更改历史记录。
3.上述场景是否罕见或不典型?我的意思是,在寻找答案时,阅读有关git-rebase的教程和SO问题时,总是强调不要对远程分支进行变基的危险,但从未考虑过其他用例。在我看来,长时间处理某些功能是相当常见的,我认为谨慎的开发人员不应该仅将更改保存在他的计算机上……
假设我正在开发某个功能,需要几天时间。因此,我创建了MyFeature分支,并检出它,然后提交了一些内容。由于工作需要几天时间,我不想将其保留在本地机器上,所以为了备份,我将此分支推送到远程。
完成工作后,我想以某种方式将其合并到主分支中。
我的问题是:
1.假设没有其他人会检出和拉取MyFeature分支,并基于该分支的提交进行工作(为什么有人想要拉取一些随意的分支?),使用--force选项重新设置此远程分支是否可以?
2.如果出于某些原因仍然不建议这样做(尽管我想了解那个原因),那么替代方案是什么?简单的合并?但是如果这样做,之后,我仍然希望从本地和远程存储库中删除MyFeature分支。那么它与(1)有何不同?我仍然通过完全删除它来更改历史记录。
3.上述场景是否罕见或不典型?我的意思是,在寻找答案时,阅读有关git-rebase的教程和SO问题时,总是强调不要对远程分支进行变基的危险,但从未考虑过其他用例。在我看来,长时间处理某些功能是相当常见的,我认为谨慎的开发人员不应该仅将更改保存在他的计算机上……