我有以下问题。 假设我在解决方案中有 dev 分支。有一天,我想到了开发一些新功能的想法。因此,我从 dev 创建了一个新分支 feature / my-new-feature 。在开发此功能的过程中,我意识到,如果我重构(也许相当重要)一些共享的服务/类甚至接口,那么创建它会容易得多(并且代码通常会更好)。
在这种情况下,您建议做什么?
昨天我有这样的时刻,我开始在我的 feature / my-new-feature 分支上进行这些重大更改。不幸的是,这不是我拥有的唯一功能分支。经过一些基础调整,合并,整理后,我的存储库变得非常混乱。好的,代码可以用,但是我的提交历史和分支图...说实话,即使我也不知道发生了什么。
如果您有时间回答,请使用git命令示例来完成。我对git不太熟练。昨天几次,我对git操作的结果感到惊讶。
答案 0 :(得分:1)
我建议您在工作中使用以下工作方法。
我们从master
分支开始,这是我们稳定的生产。如果要创建新功能,我们将创建一个新分支feature/whatever
。我们进行更改,最后使用master
将其重新建立在最新的git rebase -i origin/master
分支之上。这将打开一个交互模式,您可以在其中轻松地重新措辞,重新排序,压缩甚至删除提交。但是,这确实会更改您的历史记录,并且如果您已经将一次推送到远程(在功能分支上),则需要强制推送您的更改,否则git将不会接受它们。
此后,我们将分支合并到master
分支上。
如果出于某种原因必须重构某些东西,我们通常选择使用上述方法在单独的干净分支(来自最新的主服务器)上执行此操作,然后首先合并该主服务器。也可能只是将这些修订提交到其本地分支,然后再将其添加到其功能分支中,但是我们倾向于使合并的数量相对较小。