我目前正在学习 git rebase 的强大功能,但我也意识到它的潜在危险。
现在看了很多网上的资源,真的很迷茫:
首先,我读了“永远不要在公共分支上变基”的建议,但与此同时,我读了另一条建议“git pull --rebase”(git pull --rebase on public branches)不危险。这不是自相矛盾吗
现在,我想在这里考虑两种可能的情况:
1。作为单独的开发人员在私有功能分支上进行开发
在这种情况下,我总是可以执行“git rebase master”以从主分支获取新更改,而无需更改/破坏提交历史记录。 关于“git pull --rebase”,我认为这个用例没有必要。
2。与其他开发人员在公共功能分支上开发
这个对我来说似乎很棘手。据我所知,“git pull --rebase”应该不是问题,因为只会更改我本地提交的哈希码。
但是,在公共功能分支上执行“git rebase master”怎么样?这对我的同事/公众提交历史有危险吗?
最后,作为最后的安全机制,我试图想出一些规则来帮助我在变基时保持安全:
规则 1:只要我不必“强制推送”,我的 rebase 一切都很好,我没有破坏提交历史。
规则 2:只要我没有更改公共(已推送)提交的哈希码,我的 rebase 一切都很好,我没有破坏提交历史。
我不太确定规则 1,但我认为规则 2 是正确的(这里的问题是如何检查该规则)。