背景
个人做的一个项目,之前同步的是公司的Gitlab,现在要同步到自己的Gitlab。
问题
直接修改远程push,貌似会push当前分支的所有记录,而我的诉求是push当前分支最新状态的项目即可,不需要携带历史git提交记录,保证干净的上传。
解决方法
- 先将项目去掉版本控制,如下图
- 删除掉git管理文件,即.git,如下图
- 然后重新构建git本地仓库,即当前项目根目录执行git init,初始化操作执行后就在当前项目根目录下又会生成.git,即git管理文件
- 然后执行 git checkout -b new_branch,此行命令意思如下:
它的意思是:基于当前所在的提交(或分支),新建一个名为 new_branch 的分支,并立即切换到这个新分支上。
等价于两步操作:
git branch new_branch
# 创建分支
git checkout new_branch
# 切换到该分支
补充说明:
如果当前工作区有未提交的修改,切换时会把这些修改一并带到新分支(前提是文件不与新分支冲突)。
从 Git 2.23 起,推荐用更直观的命令:git switch -c new_branch,作用相同。
- 然后执行git add . 此行命令意思如下:
把当前目录下(含子目录)所有已跟踪和新出现的文件的改动都加入到暂存区(staging area),为下一次提交做准备
- 紧接着执行commit,在commit里就会看到当前的提交是项目当前的最新状态。
- 然后执行push,即推送当前分支和当前分支中的内容到远程。
- 完成项目干净的上传到新远程的仓库中。