美文网首页
使用git新建一个空白分支

使用git新建一个空白分支

作者: moutory | 来源:发表于2022-09-03 14:45 被阅读0次

前言

最近在工作中遇到这样一个场景,一个使用git进行版本管理的项目打算进行重构,并且在原版本的基础上新拉了一个分支出来。但开发过程中发现首次拉代码的时候,.git目录的文件大小还是很大,而且也保留了原分支的代码提交记录。由于重构使用新架构其实并不依赖原项目之前的代码,所以希望可以实现新增不受原分支影响的空白分支出来。本篇文章将对实现的步骤进行介绍,详细步骤可以看第一章,只要执行命令的话可以直接看第二章~

一、使用checkout --orphan新建空白分支

步骤一: 先在远程仓库上面新建一个分支(如果已经建过了这一步可以省略)
image.png

新建完成后,我们可以看到新建的分支其实是基于旧分支的代码的,而且也带着原有分支的提交记录


image.png
步骤二:把代码拉到本地
git clone -b branchName sshUrl
image.png
步骤三:使用checkout命令新建一个空白分支
git checkout --orphan newBranchName

执行上面这条命令后,会新建一个空白分支并且本地会自动切换到新分支上面。


image.png
步骤四:把文件内的内容添加到分支中

经过步骤三后,本地虽然新建了一个分支,但是此时还需要提交一次改动,才能让这个分支正式生效。用git branch命令查看,我们在输出结果中是看不到新建的这个分支的

image.png

如果想保留原文件,只清空提交记录,可以直接使用下面的命令把文件加入到git管理中,如果是不想要原分支的文件的话,需要先rm -rf .清一下文件,根据需要添加进对应的文件后,再纳入到git管理中。

git add -A  # Add all files and commit them
git commit
image.png

执行完上面这条命令后,我们会发现现在已经能看到新的分支了


image.png
步骤五:完成本地分支的切换
git branch -D oldBranchName  # Deletes the master branch
git branch -m oldBranchName  # Rename the current branch to master

简单理解的话,就是把本地的原分支给删掉,再把刚刚新建的分支命名为旧分支的名字,从而覆盖掉新建分支test1原有的旧代码提交记录。

image.png
步骤六:将代码推送到远程仓库

这一步也是为了让远程仓库的分支也变为空白分支

git push -f origin master  # Force push master branch to github
image.png

我们可以登录码云上面看,可以看到之前新建的test1分支,现在确实没有了原来的代码提交记录,只有刚刚的代码提交记录


image.png
步骤七:修剪本地的.git目录

这一步是为了减少本地的.git目录大小(不过本人实测好像没什么用...)

git gc --aggressive --prune=all     # remove the old files

二、纯命令版

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

三、上面这种做法的优缺点

新建空白分支最初的目的有2个,一个是清除不相关的代码提交记录,第二是减少.git目录的大小。但是其实后这种方式实践后只能实现第一个目标,对于减少.git目录大小并没有什么作用。但转念一想,其实既要新分支没有无关的代码提交记录,又想减少.git目录大小的话,感觉和新建一个仓库似乎也没什么区别了...
总的来说,如果只是单纯的想要一个提交记录为空白的新分支,那么git checkout --orphan会是一个很好的选择。

参考资料:
1、stackoverflow:让当前提交成为初始化提交
2、git官网 checkout用法

相关文章

  • 使用git新建一个空白分支

    前言 最近在工作中遇到这样一个场景,一个使用git进行版本管理的项目打算进行重构,并且在原版本的基础上新拉了一个分...

  • git在原有项目上新建分支,并提交现在的代码

    1、首先使用git branch 新建分支,例如git branch dev2.12、然后将本地切换到新建的分支,...

  • 分支

    新建分支git branch [分支名] 切换分支git checkout [分支名] 新建分支并切换到分支git...

  • Git 使用规范流程

    Git使用规范流程 第一步:新建分支 首先,每次开发新功能,都应该新建一个单独的分支(这方面可以参考《Git分支管...

  • git常用命令

    Git //删除本地分支 git branch -d分支名 //克隆新建分支拉取 //git新建分支并切换 git...

  • Git之切换分支(远程库新建分支,本地同步)

    使用Git时会有很多分支,本文专指远程库新建了一个分支,本地库需要同步分支。 1.查看远程分支-—— git br...

  • 常用的Git命令

    切换XX分支git checkout 分支名 新建本地分支git checkout -b 分支名 新建分支并推送到...

  • git日常使用总结

    git 日常使用总结 新建分支 git checkout -b //这样就可以直接创建新分支并切换到...

  • git建立,切换分支

    分支的新建,切换 在本地电脑的git项目下面使用命令:查看分支: git branch切换分支: gi...

  • 《Pro Git》翻译文3.2 Git 分支 - 分支的新建与合

    《Pro Git》翻译文3.2 Git 分支 - 分支的新建与合并 让我们来看一个简单的分支新建与分支合并的例子,...

网友评论

      本文标题:使用git新建一个空白分支

      本文链接:https://www.haomeiwen.com/subject/louunrtx.html