git 删除错误提交的commit

转自:http://www.douban.com/note/189603387/

正好遇到进阶问题。试了一下,是我要的,直接把服务器主版本还原了。不过这样也挺危险的,自己用用还可以。

方法:

git reset --hard <commit_id>

git push origin HEAD --force

其他:

根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:
    git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
    git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
    git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

HEAD 最近一个提交
    HEAD^ 上一次
    <commit_id> 每次commit的SHA1值. 可以用git log 看到,也可以在页面上commit标签页里找到.

commit合并:
http://www.douban.com/note/318248317/

时间: 2024-10-12 23:59:45

git 删除错误提交的commit的相关文章

Git 学习笔记--删除错误提交的commit

如果不小心把错误的commit给commit了,可以对其进行撤销 1.使用git log查看commit日志,找到错误提交前一版本commit的哈希值; 2.使用git reset --hard commit_id; 3.git push origin HEAD --force(git push --force) 将修改提交到git服务器

git中误删提交(commit)后,怎么恢复

"xml文件存储数据"提交被我误操作,即使用reset  --hard删除了,然后又进行了三次提交,发现删除的提交有用,需要找回来, 于是找了好久,找到好方法: 1.进入工程下的.git文件下,git reflog命令 2.使用命令git branch recover_branch 5b7cf2c(哈希码) 然后在新分支recover_branch中就有我删除的提交了,如下图 注意:reset hard还是谨慎操作

git 删除本地提交

git reset --mixed [提交id]:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息git reset --soft [提交id]:回退到某个版本,只回退了commit的信息,不会恢复到index file一级.如果还要提交,直接commit即可git reset --hard [提交id]:彻底回退到某个版本,本地的源码也会变为上一个版本的内容 --soft 模式测试比较符合需求 原文地址:https:/

git删除所有提交历史记录

把旧项目提交到git上,但是会有一些历史记录,这些历史记录中可能会有项目密码等敏感信息.如何删除这些历史记录,形成一个全新的仓库,并且保持代码不变呢? 以下方法是在当前的分支下新建一个分支,然后把之前分支删除,接着把新建的分支重命名为原分支名称,最后把分支强制推送到远程 1.Checkout git checkout --orphan latest_branch 2. Add all the files git add -A 3. Commit the changes git commit -a

git删除已经提交的包含敏感信息的文件(还没提交到远程仓库)

写好的代码已经提交了(但还没push到github),发现某个文件里包含密码.如果push的话,密码可就被公开了.如果在代码里改掉密码,再commit一次,也不行,历史提交记录还是会上传到github,人们还是会看到的. 怎么办,运行以下这两个命令可以把这个文件从刚刚的提交中去掉. git rm --cached 文件名 git commit --amend -CHEAD 用完以后,这个文件就变成了工作区状态,其他的修改呢,还是照刚才的提交提交了. 现在可以放心push了. 这个文件,我们稍加修

【原创】Git删除暂存区或版本库中的文件

0 基础 我们知道Git有三大区(工作区.暂存区.版本库)以及几个状态(untracked.unstaged.uncommited),下面只是简述下Git的大概工作流程,详细的可以参见本博客的其他有关Git的文章[链接]. (1)打开你的项目文件夹,除了隐藏的.git文件夹,其他项目文件位于的地方便是工作区,工作区的文件需要添加到Git的暂存区(git add),随后再提交到Git的版本库(git commit). (2)首次新建的文件都是untracked状态(未跟踪),此时需要git add

git 怎样删除远程仓库的某次错误提交?

假设你有3个commit如下: commit 3 commit 2 commit 1 其中最后一次提交commit 3是错误的,那么可以执行: git reset --hard HEAD~1 你会发现,HEAD is now at commit 2. 然后再使用git push --force将本次变更强行推送至服务器.这样在服务器上的最后一次错误提交也彻底消失了. 值得注意的是,这类操作比较比较危险,例如:在你的commit 3之后别人又提交了新的commit 4,那在你强制推送之后,那位仁兄

【转】git 删除commit

工作中有一次不小心提交了不该提交的代码到GIT上,而且在发现之前又提交了几个commit,现在想在GIT服务器上永久删除这个commit,具体步骤记录如下. 假设当前分支为master,当前的commit情况如下,现在需要删除commit_id_2和commit_id_4: commit_id_1 commit_id_2 commit_id_3 commit_id_4 commit_id_5 .... 一.创建新的分支,用于reset操作 git checkout -b develop git 

GIT 恢复已删除的提交

在Git中一切的操作都是可以恢复的,包括已经删除的提交,今天在做一个项目时就遇到了这种问题,也不知道是怎么回事不小心就把上午提交的所有代码都删除了,于是赶紧通过git log来查看日志,但奇怪的是当时不知是怎么操作的通过log并没有找到当时提交的任何记录 在网上有人说reflog可以找到所有的操作记录,然后按照操作通过reflog成功恢复被删除的提交 参考:Git reflog 机制 Git挽救丢失的代码 从Git仓库中恢复已删除的分支.文件或丢失的commit 3.2 Git 分支 - 分支的