我正在尝试建立一个良好的Git工作流,以便为开源项目(Endless Sky)做出贡献,但在开始学习时,我没有得到一个干净的历史记录。我的工作流程现在是:
upstream/master
在 这里。- 我的分支在 这里。我开始使用GitHub桌面应用程序,但现在正在逐渐转向命令行。
- 我的分支的主分支应该与
upstream/master
保持一致。每个我开发的功能都有一个自己的分支,从我的主分支创建,我使用自己的(本地)alpha
和(推送的)beta
分支来将我的功能组合起来进行测试/玩耍。
This branch is 15 commits ahead of endless-sky:master.
没有文件发生变化,只是合并的提交消息。这看起来对我来说很丑陋,所以我阅读了一些文章,特别是停止使用“git pull”:更好的工作流程,并切换到了rebase / fast-forwarding模式。但在这种情况下,清理现有的合并提交历史记录的最佳方法是什么?它还涉及到我的一些特性分支(参见:
feature/JammingHaywire
),我不想提交一个PR,在这个PR中,有意义的提交被毫无意义的合并提交淹没。我已经阅读了各种其他问题,并不十分清楚我是否最好:
- 删除/重建
master
— 在GitHub上这样做是否安全? - 尝试从某个点开始执行
git rebase -i [哪个提交?]
,似乎不起作用。我试过从之前fork的某个提交0facf00
开始,但我的合并提交哈希(例如在GitHub上看到的3be4d97
)在文本文件中没有显示出来需要删除。最终结果没有改变。 - 还有其他我没想到的方法吗?我正在尝试的做法本身是否是“好的实践”?