Git - 使用单个整合提交推送到新远程

时间:2012-06-03 08:00:08

标签: git version-control git-push

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

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

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

提前多多感谢。

道格

2 个答案:

答案 0 :(得分:5)

通常会使用git rebase --interactive HEAD~n,其中n是否。您想要合并到一个提交。但是,在您的情况下,您希望将整个历史记录压缩为单个提交,并且由于无法使用父级(直到初始提交)进行重新定位,因此我们必须使用git resetgit 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进行一次提交。
  6. 注意:永远不要重写/压缩/ rebase你已经推送到远程仓库的提交。

答案 1 :(得分:1)

查看git rebase。互动模式。