git - 拥有 git clean 历史记录的最佳实践是什么?

标签 git github git-rebase

阅读有关 git 工作流程的文章时,我想知道重写历史是否合适。我的工作流程以及我想象的许多其他人的工作流程是这样的:

  • 获取 Github 存储库,我们称其为 rep1
  • 做一个 fork ,那就是rep2
  • git 将其克隆到本地使用,即 rep3
  • 进行更改,提交给 rep3
  • 完成后,推送给 rep2 并在进行 PR 之前征求其他人的反馈

当我收到反馈时,似乎我想做一些 rebase 和压缩,因为反馈通常是一些小事,比如重新措辞评论或一开始就应该有所不同的事情,不值得他们自己的犯罪。

但是从文档来看,我似乎不应该更改 rep2 上的历史记录,而且 --ammend 之类的东西在这种情况下确实不起作用。是我的工作流程有误,还是我误解了那些关于更改历史记录的警告?

最佳答案

一般经验法则:永远不要改写已经发布的历史。很可能有人已经获取了您的提交;如果你改写历史,那些人一 pull 出改写的历史就麻烦了。

不太严格的经验法则:在某些情况下,当您绝对确定您是唯一一个从事该工作的人时,重写已发布的历史可能被认为是可以的分支机构。

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

关于git - 拥有 git clean 历史记录的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29767077/

相关文章:

GitHub "Your Contributions"和私有(private)存储库

git - 将大型提交推送到 GitHub 会导致致命写入错误 : Bad file descriptor

git - 转到上一个提交,进行更改并作为新头提交

javascript - 如何使用 Repo.js

git - Jenkins:不想触发 Git 标签(无工作区)

git pull --rebase : passing --rebase-merges

git - 当我没有 svn 凭据时,如何将 svn 存储库导出到 git?

从我 fork 的仓库中 pull 时发生 Git 冲突,即使我做的最后一件事是从中 pull

github - 为 fork 的 github 项目的 fork 的 github 项目准备拉取请求

Git 仅 pull 存储库的内容