【发布时间】:2012-06-07 18:52:05
【问题描述】:
我已经在私人仓库上工作了一段时间,并将发布到 GitHub。
问题是我有很多提交,为了卫生起见,我希望只有一个提交出现在 GitHub 中。
如何在不推送历史的情况下推送?即将整个 MASTER 合并到一个提交中
非常感谢。
道格
【问题讨论】:
标签: git version-control git-push
我已经在私人仓库上工作了一段时间,并将发布到 GitHub。
问题是我有很多提交,为了卫生起见,我希望只有一个提交出现在 GitHub 中。
如何在不推送历史的情况下推送?即将整个 MASTER 合并到一个提交中
非常感谢。
道格
【问题讨论】:
标签: git version-control git-push
通常会使用git rebase --interactive HEAD~n,其中 n 是编号。您想要合并为一个的提交。但是,在您的情况下,您希望将整个历史记录压缩到一个提交中,并且由于不可能在没有父级的情况下进行变基(直到初始提交),我们必须使用 git reset 和 git commit --amend。
这就是你要做的:
git log --oneline。查找初始提交的 SHA。fe7d5d1。运行git reset fe7d5d1。这会将分支重置为初始提交。git add . 暂存您的所有更改。git commit --amend -m "Initial commit"。git log --oneline 确认您现在只有一个提交。注意:切勿重写/压缩/rebase 已推送到远程仓库的提交。
【讨论】:
查看 git rebase。交互模式。
【讨论】: