您的位置:首页 > 其它

git reset --hard命令小结

2016-03-12 11:46 274 查看
参考

git 删除 错误 提交的 commit

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

    # git log //查看提交日志
        commit 3628164fb26d48395383f8f31179f24e0882e1e0
       Author: Michael Liao <askxuefeng@gmail.com>
       Date:   Tue Aug 20 15:11:49 2013 +0800
         提交test.txt文件
    注意:如果觉得眼花缭乱,可以单独显示一行commit ID和
     # git log --pretty=oneline //查看提交一行日志
        3628164fb26d48395383f8f31179f24e0882e1e0  提交test.txt文件
    # git reset --hard +3628164fb26d48395383f8f31179f24e0882e1e0 //本地代码回退到某个版本
       或执行:git reset --hard + 3628164 //本地代码回退到某个版本
   # git reflog //用来记录你的每一次命令

      ea34578 HEAD@{0}: reset: moving to HEAD^

      3628164 HEAD@{1}: commit: append GPL

      ea34578 HEAD@{2}: commit: add distributed

      cb926e7 HEAD@{3}: commit (initial): wrote a readme file
回退小结
现在总结一下:
1.HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令 # git reset --hard commit_id。(commt_id为
7 位)
2.穿梭前,用git log可以查看提交历史,以便确定要回退到过去的哪个版本,[b]使用命令
git reset --hard commit_id 
3.要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本,使用命令
git reset --hard commit_id[/b]

合并分支小结
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name> //git merage dev;把dev合并到master分支,这种方式:删除分支后,会丢失分支信息(缺点)

或者:git merge --no-ff -m "提交合并到master分支" dev//把dev分支合并到master分支; 这种方式:每次合并都有合并的分支信息,从历史分支中卡可以看到分支信息(优点)
删除分支:git branch -d <name>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: