资讯专栏INFORMATION COLUMN

关于git删除远程commit

bergwhite / 1539人阅读

摘要:很多原因可能会导致我们想删掉远程服务器上提交的版本。下面主要说一下删除的命令行。然后通过命令提交到远程库。这里一定要注意注意再注意注意提交到远程库之后,的代码会直接从远程库里面删除。,代表的是最新版本的上一个版本,以此类推。

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

先说下环境:

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

好了,先来模拟下可能需要用到这篇文章的地方。我们的代码都在远程服务器托管。 很多原因可能会导致我们想删掉远程服务器上提交的版本。下面就来说下怎么删除,应该有不同的方法去实现删除。

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

commit4
commit3
commit2
commit1

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

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代码!多谢!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/12454.html

相关文章

  • 关于git删除远程commit

    摘要:很多原因可能会导致我们想删掉远程服务器上提交的版本。下面主要说一下删除的命令行。然后通过命令提交到远程库。这里一定要注意注意再注意注意提交到远程库之后,的代码会直接从远程库里面删除。,代表的是最新版本的上一个版本,以此类推。 额,怎么开头呢,从文章的定位开始吧。这篇文章的目的就是定位给完全的小白,像我这样,对于互联网知识不了解的人,但是特别渴望学习,小白文章小白文章小白文章!重要的事情...

    guqiu 评论0 收藏0
  • Git自由之章 - 本地仓库的基本操作

    摘要:终端提示注意对生成定的秘钥进行重命名输入名称。如果某些文件已经被纳入了版本管理中,则修改是无效的。 简述 Git 是目前很流行的版本控制工具,很多开发团队在使用。本人也在使用这个工具,发觉相比于传统的SVN,确实好用很多,而且它还有很大的自由属性,这一点深得我的欣赏。这次的分享主要是分享关于Git的基础,关于本地仓库的基本操作。(不懂本地仓库的概念可以上网查一些关于 Git 的代码仓库...

    XFLY 评论0 收藏0
  • 关于git常用命令

    git常用命令 git常用命令 初始化本地git环境  git init 克隆一份代码到本地仓库   git clone XXX 把远程库的代码更新到工作台   git pull 强制把远程库的代码跟新到当前分支上面   git pull --rebase origin master 把远程库的代码更新到本地库  git fetch 把本地的修改加到stage中 ...

    only_do 评论0 收藏0
  • 关于git常用命令

    git常用命令 git常用命令 初始化本地git环境  git init 克隆一份代码到本地仓库   git clone XXX 把远程库的代码更新到工作台   git pull 强制把远程库的代码跟新到当前分支上面   git pull --rebase origin master 把远程库的代码更新到本地库  git fetch 把本地的修改加到stage中 ...

    lvzishen 评论0 收藏0
  • 关于git常用命令

    git常用命令 git常用命令 初始化本地git环境  git init 克隆一份代码到本地仓库   git clone XXX 把远程库的代码更新到工作台   git pull 强制把远程库的代码跟新到当前分支上面   git pull --rebase origin master 把远程库的代码更新到本地库  git fetch 把本地的修改加到stage中 ...

    2i18ns 评论0 收藏0

发表评论

0条评论

bergwhite

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<