使当前提交成为Git存储库中的唯一(初始)提交?我目前有一个本地Git存储库,我将其推送到Github存储库。本地存储库有~10个提交,Github存储库是这个的同步副本。我想要做的是从本地Git存储库中删除所有版本历史记录,因此存储库的当前内容显示为唯一的提交(因此存储库中的旧版本文件不会存储)。然后,我想将这些更改推送到Github。我已经调查了Git rebase,但这似乎更适合删除特定版本。另一个可能的解决方案是删除本地仓库,并创建一个新的仓库 - 虽然这可能会创造很多工作!ETA:有一些未跟踪的特定目录/文件 - 如果可能的话,我想保持这些文件的跟踪。
3 回答
阿晨1998
TA贡献2037条经验 获得超6个赞
这是蛮力的方法。它还会删除存储库的配置。
注意:如果存储库有子模块,这不起作用!如果您正在使用子模块,则应使用例如交互式rebase
第1步:删除所有历史记录(确保您有备份,这不能还原)
cat .git/config # note <github-uri>rm -rf .git
第2步:仅使用当前内容重建Git仓库
git initgit add .git commit -m "Initial commit"
第3步:推送到GitHub。
git remote add origin <github-uri>git push -u --force origin master
鸿蒙传说
TA贡献1865条经验 获得超7个赞
唯一适合我的解决方案(并保持子模块正常工作)是
git checkout --orphan newBranch
git add -A # Add all files and commit them
git commit
git branch -D master # Deletes the master branch
git branch -m master # Rename the current branch to master
git push -f origin master # Force push master branch to github
git gc --aggressive --prune=all # remove the old files
.git/当我有子模块时,删除总是会导致很大的问题。使用git rebase --root会以某种方式导致我的冲突(并且需要很长时间,因为我有很多历史)。
- 3 回答
- 0 关注
- 606 浏览
添加回答
举报
0/150
提交
取消