git撤销commit,错误reset后恢复本地代码;git忽略已经被纳入版本管理的文件

来源:互联网 发布:国外域名交易平台 编辑:程序博客网 时间:2024/05/17 01:31

git commit的时候可能commit了不想上传的文件,这个时候可以回退到某次commit。

首先git log查看commit历史:

commit b217e94539a8143d0c1ca323d1d28b7299abb61eMerge: c2b3f7c 8bc8990Author: yuanjiang <932625974@qq.com>Date:   Mon May 23 14:42:31 2016 +0800    continuecommit c2b3f7c0c481d5f38e4f547499a0b66a0b39ec8eAuthor: yuanjiang <932625974@qq.com>Date:   Mon May 23 14:39:44 2016 +0800    continue

找到要撤回到的那次commit id,然后执行如下命令:

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

一般使用git reset --soft 命令,git reset --hard要慎用,因为这会将本地代码也退回到历史的commit id。

当git reset --hard错误地将本地代码退回到历史commit后,也可以使用如下方法恢复。

首先执行git reflog(reflog会记录所有HEAD的历史,也就是说当你做 reset,checkout等操作的时候,都会被记录在reflog中):


然后仍然使用git reset --hard命令强制将本地代码退回到历史的commit 。

-------------------------------------------------------------------------------------------------------------------------------------------------------------

.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。 正确的做法是在每个clone下来的仓库中手动设置不要检查特定文件的更改情况:

 

 git update-index --assume-unchanged PATH    //PATH为要忽略的文件


1 0
原创粉丝点击