25

我正在尝试从 Github 获取 repo,恢复过去的标签,将其推送到另一个远程并删除所有历史记录。除了删除所有提交日志外,我可以在下面做所有事情。我错过了什么?

git clone https://github.com/user/user-repo.git
cd user-repo
git reset --hard tags/v2.0
git remote add stash ssh://git@myserver:7999/myproject/user-repo.git
git push --force stash master
4

3 回答 3

55

我认为你想要的是一个像新的回购一样的回购,所以删除.git/目录并重新启动它会更简单。

git clone https://github.com/user/user-repo.git
cd user-repo
git reset --hard tags/v2.0

rm -rf .git/
git init
git add .
git commit -m 'first commit'

git remote add stash ssh://git@myserver:7999/myproject/user-repo.git
git push --force stash master
于 2013-02-20T03:28:46.307 回答
3

您可以使用git merge --squash将所有提交压缩为一个,然后将其推送。

于 2013-02-19T23:51:44.153 回答
1

您基本上是在谈论将所有提交汇总到一个提交中,还是要保留所有提交但截断实际提交消息?

要将提交压缩为一个(并截断最终提交消息,如果需要),您可以使用交互式变基:

git rebase -i <whatever>

要截断实际提交消息但保留所有提交,请使用--msg-filterto 选项git filter-branch

于 2013-02-19T23:51:52.207 回答