一:版本回退

    git reset --hard HEAD^       回退上一个版本
    git reset --hard HEAD^^      回退上上一个版本
    git reset --hard HEAD~~100   回退往上100个版本
    git reset --hard commit_id   回退到某个版本号
    git reset --hard 27b74621

二:撤销修改

1:改乱了工作区某个文件的内容,想直接丢弃工作区的修改时

git checkout -- readme.txt

2:不但改乱了工作区某个文件的内容,还添加到暂存区,需要分两步操作

第一步,把暂存区的修改撤销掉,重新放回工作区:git reset HEAD readme.txt
第二步:git checkout -- readme.txt

3:已经提交了不合适的修改到版本库时,想要撤销本次提交,使用版本回退。不过前提是没有推送到远程库。

三:删除文件

    版本库有个test.txt 工作区已删除rm test.txt
    A:确实要从版本库删除该文件
        git rm test.txt
        git commit -m "remobe test.txt"
    B:工作区删错了,版本库里还有 把误删的文件 回复到最新版本
        git checkout -- test.txt   

四:git忽略已经被提交的文件

git rm --cached logs/xx.log,
然后更新 .gitignore 忽略掉目标文件,
最后 git commit -m "We really don't want Git to track this anymore!"

五:放弃本地修改,强制拉取更新代码的方法

开发时,对于本地的项目中修改不做保存操作(或代码改崩),可以用到Git pull的强制覆盖,具体代码如下

git fetch --all
git reset --hard origin/master
git pull //可以省略

git fetch 指令是下载远程仓库最新内容,不做合并 git reset 指令把HEAD指向master最新版本

六:查看分支的日志

git reflog --date=local --all | grep feat_xxx