这个操作会将库清空,一般来说在建库开始的时候操作。
适用场景:
git init初始化版本库之后,提交第一个点之后发现这个点出问题了,但是此时内心如果有洁癖的话,
你会觉得不完美,很想把这个点干掉重来。

如上图,此时你这个点已经推到远程master上面了, 因为是第一个点,所以通过普通的删除分支的命令无法达到删除的目的。但是可以“曲线救国”,通过以下方法可以实现:
(这个操作会清空版本库, 所以请慎重操作!!!)

1,首先需要确保你拥有master权限
2,要有一个空的版本库,或者第一个点为不包含代码文件的版本库。如下所示:
这个版本库的第一个点我只新建了一个隐藏文件 .gitkeep文件。
3,在待重建的版本库上通过以下的命令添加上图②对应的版本库:
git remote add origin1 git@scm-gitlab:test/test/test.git
(因为①中远程版本库名字是origin,所以这里需要add另外一个库名字)
git fetch origin1 获取同步最新状态

如果master分支是被保护的,需要设置成不保护。
git reset --hard origin1/master 跳转到新add进来的库的master分支
git push orgin master -f 强制将origin1的点推送到origin的master分支上,
这样origin的master就发生了改变

然后把添加进来的库删掉
git remote rm origin1

这样一来就把原来的点删掉了,相当与重建了版本库
 
你们可以发现origin1的第一个是什么文件都没有的,其实我只新建了一个隐藏文件.gitkeep,这样就可以基于这个初始点进行开发,后续如果想删掉重建就没那么麻烦了,直接跳到git init的那个点,然后强推就行了。这个操作有风险,请想好再做,避免带来不必要的损失。
另外,这也告诉我们,在新建版本库的时候,第一个点尽量不要添加任何代码相关的文件,可以添加.gitkeep文件作为初始点,这样操作相对规范点

 

如何删掉git版本库master分支的第一个commit的更多相关文章

  1. Git push将本地版本库的分支推送到远程服务器上对应的分支

    在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了,如果不清楚版本库的构成,可以查看我的另一篇,git 仓库的基本结构. g ...

  2. 萌新笔记——git的问题(error: object file .git/objects/* is empty...)的解决方案及对git版本库文件的了解

    由于操作不当,导致git版本库出了大问题,如下所示: error: object file .git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e ...

  3. git 版本库拆分和subtree用法

    git 版本库拆分 原文地址: https://segmentfault.com/a/1190000002548731 程序员最爽的事情是什么?删删删!所有项目本来都很苗条的,时间长了难免有一些越搞越 ...

  4. git的问题(error: object file .git/objects/* is empty...)的解决方案及对git版本库文件的了解

    由于操作不当,导致git版本库出了大问题,如下所示: error: object file .git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e ...

  5. Git版本库

    创建版本库:git init db 只要用git init db 就可以很容易创建一个空的Git版本库. Git版本库创建好之后,在版本库的目录下有一个.git的子目录中有几项内容,其中注意三项: 1 ...

  6. git 版本库回滚(转载)

    From:http://www.cnblogs.com/qualitysong/archive/2012/11/27/2791486.html From: http://www.tech126.com ...

  7. 解决git提交敏感信息(回退git版本库到某一个commit)

    解决git提交敏感信息(回退git版本库到某一个commit) Fri 07 June 2013 git是一个很好的版本库, 现在很多人用它, 并在github上创建项目, 相信大家都有过将敏感信息提 ...

  8. 【Git】3、创建Git版本库、配置Git仓库用户邮箱信息

    初识Git 文章目录 初识Git 1.创建Git版本库 认识.git 2.基础配置 2.1.查看配置信息 2.2.配置昵称邮箱信息 2.3.修改配置信息 1.通过命令行 2.通过修改配置文件. 修改全 ...

  9. GIT版本库回滚【图文版】

    git 版本库回滚,在实际开发过程中总会遇得到   1. 先找出需要回滚的commitid     git log -3   2. 重置本地版本库到指定commitid, 注意:本地改动将丢失     ...

随机推荐

  1. 自定义一个数组对象工具demo

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. javascript的变量声明和数据类型

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. Windows下Elasticsearch安装问题处理

    按ES官网的安装方法正常安装就行了.可能遇到的其他问题. 1.报jvm.dll不存在. 只需要重新安装JDK过后,会有jdk1.8.0_73目录和jre1.8.0_73目录.因为java就喜欢玩这种“ ...

  4. linux/windows/Mac平台生成随机数的不同方法

    linux平台,使用rand.Seed() //rand_linux.go package main import ( "math/rand" "time" ) ...

  5. 六十六:CSRF攻击与防御之CSRF防御之ajax防御和ajax封装

    app里面还是要绑定CSRFProtect from flask_wtf import CSRFProtect # flask_wtf 已经提供CSRF的防御手段CSRFProtect(app) # ...

  6. ANSI C遍历二维数组指针地址

    #include <stdio.h> int main() { ][] = {,,,}; //等价于{{1,2},{3,4}}; ; i < ; i++) { ; j < ; ...

  7. logging.basicConfig函数各参数:

    import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(line ...

  8. PHP 註解規則使用方式

    /** * 函數名稱 * 函數描述(有些會含HTML代碼) * * @access 變數可存取的權限 (Example: Public or Private) * @api 爲第三方來源的變數 * @ ...

  9. react中路由跳转push与replace的区别

    路由跳转,replace / push 区别 push: a-b-c 可以回到上一级 例: this.props.history.push('路由地址') replace: a-b-c 回不到上一级 ...

  10. 自定义 filter simple_tag inclusion_tag 总结

    在已经注册的app下创建templatetags的python包 在包内创建py文件 my_tags.py 在py文件中写代码: from django import template registe ...