改变Github的历史

时间:2016-03-31 08:24:14

标签: git github maintainability

我正在学习Github并遇到了问题。

我正在结束这一天,我将代码推送到存储库 然后我意识到我已经注释掉了不再需要的代码 我意识到这是糟糕的风格所以删除它并再次推送。

现在连续两次拥有相同的提交消息看起来有点奇怪。

应该/可以做什么?
我是否应该再次推动并发出消息" minor"或者"删除注释掉的代码"。

我不想让历史变得混乱。

有没有办法彻底删除推送历史记录(或其他任何名称)?

3 个答案:

答案 0 :(得分:0)

在这种情况下,您可以完成git reset HEAD --hard,删除注释,提交最终版本并强制推送它们(使用git push -f origin branchname),这样您就可以为所有变化,而不是两个。

但是,我不推荐以上内容,提交在git中并不昂贵。相反,对于第二次提交,更好的提交消息(如git commit -m "removed commented chunks of code")会在这种情况下为您留下更清晰的历史记录。 IMO,这里的问题不是多次提交,而是第二次提交的错误提交消息

我建议您更改使用git commit --amend进行的第二次提交的提交消息,并在此之后强制推送分支。

答案 1 :(得分:0)

  

我意识到这是糟糕的风格所以删除它并再次推送。

您有2个选项:

  1. 在旧代码
  2. 之上替换并提交新代码
  3. 从存储库中删除旧代码。
  4. 选项2表示 rebase ,如果您不是唯一使用此分支的人,则该选项具有破坏性。

    因此,既然您已经推动了分支机构,那么您没有太多选择,您将不得不更改代码并再次提交。

      

    有没有办法彻底删除推送历史记录(或其他任何名称)?

    主要选项:

    1. 复归
    2. 变基
    3. <强> revert

      还原将撤消您的更改 Revert不具有破坏性,因为它不会改变历史记录,它会在当前历史记录之上添加新的撤消提交

      git revert <SHA-1>
      

      <强> rebase

      如上所述 - 一个破坏性的行为,它将在您的历史记录之后发生,并且您希望避免它,因为您已将分支发布到远程仓库。

答案 2 :(得分:0)

如果你有更大的历史记录重写工作,请检查git rebase -i OLD_COMMIT..HEAD或类似。

但是请注意当您push -f到github分支时,您必须通知该分支的所有用户。这也适用于任何共享存储库。由于github主要用于共享代码,请记住,您可能需要通知所有推送到共享分支的开发人员,您已更改了历史记录。