Git - 只将最近的提交推送到github

Dav*_*eer 29 git github

在我当地的git repo上,我有很多提交,其中包括"秘密"连接字符串:-)

当我把它推到那里时,我不希望这个历史记录在github上.

基本上我想推动我拥有的一切,但想要摆脱大量的历史.

也许我会更好地在我的所有开发人员的分支中运行,然后在提交之前合并回到master ...那么master的历史将只是我想要的提交.

我试过运行rebase:

git rebase –i HEAD~3

返回3次提交,然后我可以删除提交.

然而遇到汽车樱桃挑选失败,它变得相当复杂.

任何想法都非常感激...历史可以没什么大不了的,如果这太难了就重新开始:-)

Gre*_*ill 57

你可以分支你当前的工作,回顾主人,然后挑选最新的提交回主人:

git branch secret
git reset --hard HEAD~3
git cherry-pick secret
Run Code Online (Sandbox Code Playgroud)

在图片中,

    A--B--C--D--E (master)

之后git branch secret:

    A--B--C--D--E (master, secret)

之后git reset --hard HEAD~3:

    A--B (master)
        \
         C--D--E (secret)

之后git cherry-pick secret:

    A--B--E' (master)
        \
         C--D--E (secret)

最后,如果你git checkout secret; git rebase master,你可以得到:

    A--B--E' (master)
           \
            C--D (secret)

  • 我见过的最棒的git用户 (9认同)