有git清理历史的最佳做法是什么?

Tor*_*que 2 git github git-rebase

阅读git工作流程,我想知道历史重写的适当性.我的工作流程,我想象其他许多工作流程,是这样的:

  • 拿Github存储库,让我们称之为rep1
  • 做一个叉子,那将是rep2
  • git克隆它在本地工作,这是rep3
  • 进行更改,提交rep3
  • 完成后,推送到rep2并在制作PR之前询问其他人的反馈

当我得到反馈时,似乎我想做一些变基和挤压,因为反馈往往是一些小问题,如重写评论或首先应该有所不同的事情,并且不值得他们自己的提交.

但是从文档来看,似乎我不应该在rep2上改变历史,事实上像--ammend这样的东西在这种情况下不起作用.我的工作流程是错误的,还是我误解了有关改变历史的警告?

hel*_*ert 5

一般经验法则:永远不要重写已经发布的历史记录.有可能有人已经提交了你的提交; 如果你改写历史记录,那么这些人一旦撤回重写的历史就会陷入困境.

不太严格的经验法则:在某些情况下,当您完全确定自己是唯一一个在该分支上工作的人时,可以认为重写已发布的历史记录是可以的.

就个人而言,我认为可以在GitHub存储库的invidivual fork中重写已经推送的功能分支的历史记录,因为我不希望其他任何人在该分支上工作.不过,这只是个人意见.