5

我已经在私人仓库上工作了一段时间,并将发布到 GitHub。

问题是我有很多提交,为了卫生起见,我希望只有一个提交出现在 GitHub 中。

我如何在不推动历史的情况下推动?即将整个 MASTER 合并到一个提交中

提前谢谢了。

道格

4

2 回答 2

5

通常人们会使用git rebase --interactive HEAD~nwhere n is the no。您想要合并为一个的提交。但是,在您的情况下,您希望将整个历史压缩到一个提交中,并且由于没有父级(直到初始提交)的 rebase 是不可能的,我们必须使用git resetand git commit --amend

这是你要做的:

  1. git log --oneline. 查找初始提交的 SHA。
  2. 假设我们的 SHA 是fe7d5d1。运行git reset fe7d5d1。这会将分支重置为初始提交。
  3. 现在用于git add .暂存所有更改。
  4. 接下来修改您的初始提交,git commit --amend -m "Initial commit".
  5. 确认您现在只有一个提交git log --oneline

注意:永远不要重写/压缩/rebase 你已经推送到远程仓库的提交。

于 2012-06-03T08:23:06.947 回答
1

查看 git rebase。交互模式。

于 2012-06-03T08:04:40.187 回答