关于git删除远程commit

额,怎么开头呢,从文章的定位开始吧。这篇文章的目的就是定位给彻底的小白,像我这样,对于互联网知识不了解的人,可是特别渴望学习,小白文章小白文章小白文章!重要的事情说三遍,大神绕行!android

先说下环境:git

运行环境:mac os
编程工具:android studio
代码托管平台:开源中国git@cos

好了,先来模拟下可能须要用到这篇文章的地方。咱们的代码都在远程服务器托管。 不少缘由可能会致使咱们想删掉远程服务器上提交的版本。下面就来讲下怎么删除,应该有不一样的方法去实现删除。编程

1.1假设咱们服务器上的commit记录为:segmentfault

commit4
commit3
commit2
commit1

咱们所提交的commit4为你想删除的。那应该从哪入手?
至少我用的android studio我不知道如何下手。而多数用git的人都是用的命令行控制,很显然,咱们也要用命令行控制。具体操做:windows

1.2在哪里输入命令行
打开mac上的终端(windows好像也有个cmd仍是啥的吧,输入命令行的,都同样的)。而后多少有点开发经验的应该都知道命令行的cd指令。在终端中,cd到你的项目目录下。正常来讲,若是你的项目是一个git项目,那么在你的目录下面会有个.git的隐藏文件夹。好比个人项目叫Test,在硬盘的develop文件夹下。在终端中输入“cd developer/Test/”回车,此时已经定位到你的项目下了。这时候你操做的就是当前项目的git,不会影响其余的git库。服务器

1.3输入什么?
咱们去网上看人家的教程,人家每每都直接给出"get reset --hard..."之类的代码,这时候咱们就能够在当前的终端中输入了。下面主要说一下删除的命令行。拿上面的例子。commit4为你想删除的,首先在终端中输入"git reset --hard HEAD~1",接下来会提示"HEAD is now at commit3"就是说你当前的代码是commit3提交的内容。而后经过"git push --force"命令提交到远程库。这里必定要注意注意再注意!工具

注意:提交到远程库以后,commit4的代码会直接从远程库里面删除。 也就是修改的记录没了。下面要讲的,跟刚才输入的第一个命令"git reset --hard HEAD~1"有关,这里相当重要的是后面那个数字。1表明你当前在git上最新的那个版本。2,表明的是最新版本的上一个版本,以此类推。也就是当你输入"git reset --hard HEAD~2"的时候,会把commit3以及之后的都删掉,也就是远程仓库只有commit2修改后的代码!学习

经过上文看到,这种用法还有一点局限性,那就是我想要只删除中间的commit3版本,可是想保留commit4修改的内容。这种需求是没法知足的。 命令行

该文章虽为原创,可是里面用到的方法是我在SegmentFault社区的一篇文章上看到的:http://segmentfault.com/a/1190000004071116
还得多谢一直支持个人大神,让我知道如何操做git代码!多谢!code

相关文章
相关标签/搜索