清空Git仓库的Commit提交
git是当前最常见的版本控制工具,但出现以下情况时,往往需要清空commits历史记录:
- commits记录占用空间过大甚至远远超过版本控制文件本身大小,进行云端代码管理时会受制于空间限制,无法继续更新
- 历史记录中存在敏感信息,需要清理
清理commits历史记录的核心思想是,直接删除本地的.git目录,重新建立git仓库并与远程仓库建立链接,采用强制提交的方式覆盖远程仓库的commits记录。
下面是一段示例,参数说明:
- $REPO_DIR 表示需要处理的Git仓库本地目录
- git@github.com:xxxx/$REPO_DIR.git 表示远程仓库地址
进入本地仓库,删除.git目录
1 | cd $REPO_DIR |
重新初始化
1 | git init |
由于Gitlab
仓库的默认分支名为main
,而仓库初始化默认为master
,
所以需要重命名为main
.
添加commit
1 | git add . |
添加远程仓库链接
设置远程仓库代号为origin
, 则
1 | git remote add orign git@github.com:xxxx/$REPO_DIR.git |
注意,此时可用git remote -v
检查远程仓库的设置。
强制提交到master分支,覆盖远程仓库的commits历史提交记录
1 | git push -f origin master |
追踪上游分支
1 | git push --set-upstream origin main |
如果不设置上游分支,再次提交时的commits不能确定跟踪变化,所以不能正常提交博客文章,于是这是一个必须的操作。