声明:我显然对Git还缺乏经验。感谢您的帮助和耐心。
有时,在“特性”分支中工作一段时间后,我会想从主分支中拉取新更改。假设特性分支在主分支之后有x个提交。当我更新特性分支时,我使用的git工具(例如SourceTree、GitHub(推送时)等)报告说我刚刚在我的特性分支上创建了x个新的提交。
最终,历史记录只显示一个合并提交。但是,由于这些“x”提交导致一些奇怪的事情发生。例如,当我推送分支时,会向我们的Slack频道发布一条消息(通过GitHub生成),声称我刚刚添加了y个提交(其中y=x+[特性分支中存在的新的非合并相关提交数])
例如,我刚刚将主分支合并到我的特性分支中,SourceTree现在显示我有97个提交可以推送。(合并之前,SourceTree只显示我有2个未推送的提交):
这是正常的吗?Git/SourceTree是否有效地只是“引用”原始提交,而不是在全新的提交中复制相关的代码更改?
所有这些都不是很重要,但有点误导和令人困惑。我做错了什么吗?
git rebase --onto <your-new-commit> <last-unneeded-commit>
来解决这个问题,但是这可能会变得非常混乱,涉及大量的提交者。 - Joseph K. Strauss