Git reset到某一次commit

下图场景:张三和李四并行开发,张三提交commit1(bc2dd00),李四提交commit2(7f019d2),张三再提交commit3(44d4fc5),如果此时李四revert commit2,会将张三的commit3冲掉。

如果张三在commit3中提交的文件较多,那就有必要还原回来。

我们可以选择reset到commit3,但是这样做会把commit3之后的所有更新都冲掉,所以我们在操作之前有必要备份一下当前状态下的代码。

操作流程是:

1. 先返回commit3

git reset commit3

2. 新建分支

git branch -b temp

3. 在git页面上将默认分支设置为temp

4. 删除出问题的分支,以master分支为例

git brach -d master

5. 将temp分支改名为master分支

git branch -m temp master

6. 将commit3之后的改动手动更新到项目中,然后

git push -f origin master
时间: 2024-10-05 00:53:52

Git reset到某一次commit的相关文章

Git误操作 git reset强制回滚 恢复commit方法

参考: 找回Git中丢失的Commit Git误操作 git reset强制回滚 恢复commit方法 使用Git时,常有误操作,在Commit之后又执行了git reset --hard HEAD强制回滚本地记录以及文件到服务器版本,导致本地做的修改全部恢复到Git当前分支的服务器版本,同时Commmit记录也消失了. 此时解决方法是通过git reflog来查看先前记录并恢复: git reflog会记录所有HEAD的历史,也就是说当你做 reset,checkout等操作的时候,这些操作会

每天一命令 git reset

在使用git的时候不免遇到commit的时候commit了错误的代码的时候,这时候就需要用到git的常用命令之一  reset了. reset顾名思义为重置.重置的是HEAD指针,可以使HEAD指针移动到任意commit上. 使用git log [--oneline] 命令查看之前所有的commit id.然后使用git reset命令使HEAD指针指向其中的一个id. git reset 有三个可选参数 --hard  --mixed  --soft 其中--hard参数表示不但重置HEAD指

git revert与git reset

共同点:此次提交的代码会被退回到暂存区 不同点: git revert:撤销某次操作,用新的commit去标记旧的commit失效,即抵消操作.git log中会有一次提交的commit,有一次撤销提交的commit git reset:撤销某次提交,将HEAD回退,即删除新的commit.git log中没有新的commit 注:日后继续merge以前的老版本时,因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现.

Git reset head revert 回滚

Overview 涉及Git一些日常操作 :) 基础知识 <Pro Git>至少了解branch,commit的概念,及基本的原理 Git常用魔法 存档:master代码回滚方法 我是QA,我用Git Git 工作区.暂存区和版本库 Overview 暂存区(stage, index)是 Git 最重要的概念之一 工作区: 你的目录下面的文件们 暂存区: 由.git/index保存引用,.git/object保存对象的区域 版本库: 仓库 Relations Why stage before

Git学习01 --git add, git commit , git log ,git status, git reset --hard, head

特点:Git极其强大的分支管理:分布式版本 集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器.中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆.集中式版本控制系统最大的毛病就是必须联网才能工作. 使用Git 1.创建版本库 首先,选择一个合适的地方,创建一个空目录,通过git init命令把这个目录变成Git可以管理

git reset 之后切换到原来的commit

git reset的语法: git reset [--hard|soft|mixed|merge|keep] [<commit>或HEAD] 作用:将当前分支reset到指定的commit或者HEAD(默认为最新的一次提交,即重设到最新一次提交之前的版本) 那使用git reset命令之后,想回到以前怎么处理呢? 第一种方法: git reflog git reset --hard commitid 第二种方法: git reflog git checkout commitid git reb

git reset HEAD使用

修改demo1.txt文件 vim demo1.txt 修改hello.php vim hello.php 查看文件状态 git status -s 添加到缓存区 git add . 查看文件状态 git status -s 将hello.php从缓存区清除 git reset HEAD -- hello.php 查看文件状态 git status -s 提交文件 git commit -m '修改demo1' 查看文件状态 git status -s 命令行输出

Git reset

一.简介 git reset将当前的分支重设到指定的<commit>或者HEAD(默认,如果不显示指定commit,默认是HEAD,即最新的一次提交),并且根据操作模式有可能更新index和working directory.   二.教程 http://blog.csdn.net/hudashi/article/details/7664464

git reset soft,hard,mixed之区别深解

GIT reset命令,似乎让人很迷惑,以至于误解,误用.但是事实上不应该如此难以理解,只要你理解到这个命令究竟在干什么. 首先我们来看几个术语 HEAD 这是当前分支版本顶端的别名,也就是在当前分支你最近的一个提交 Index index也被称为staging area,是指一整套即将被下一个提交的文件集合.他也是将成为HEAD的父亲的那个commit Working Copy working copy代表你正在工作的那个文件集 Flow 当你第一次checkout一个分支,HEAD就指向当前