如何压缩所有提交历史记录并推入另一个远程存储库?

soh*_*ham 3 git github rebase squash

经过多次努力,我无法弄明白.我有两个地方分支机构,mastertests.我有两个相应的远程分支,具有相同的仓库origin/master,origin/tests.我有另一个远程分支public/master.我有一些推送本地master和远程的提交历史记录origin/master.现在,我想压缩所有提交origin/master并推入远程分支public/master.我无法弄清楚该怎么做.

我试过rebase在新的本地分支上做,但它没有用.

Sha*_*tin 6

重置为第一次提交,然后修改,最后强制推送.

git pull origin master
git checkout master
git reset --soft <my-first-commit>
git commit --amend -m "New commit message"
git push public master --force-with-lease
Run Code Online (Sandbox Code Playgroud)

如果最后一个命令出现"陈旧信息"错误,也可以

  • git fetch public master在最后一个命令之前运行,或者
  • 运行git push --force-with-lease public +master而不是最后一个命令.

你可以找到你的第一个这样的提交:

git rev-list --max-parents=0 HEAD
Run Code Online (Sandbox Code Playgroud)