git经常使用命令

公司里面用的版本控制系统是git,以前一直使用svn,用了一段时间git,如今总结了一些在工做当中常常用到的一些比较重要的命令git

  • 撤销添加到暂存区的文件
    • git reset head finename 撤销单个文件
    • git reset head 撤销全部已经添加到暂存区的文件
  • 使用版本库中的最新文件,放弃本地修改
    • git checkout filename 放弃单个文件的修改
    • git checkout *放弃全部文件的修改
  • 比较工做区和暂存区文件的区别
    • 默认状况下git diff 比较的是工做区和暂存区文件之间的区别
    • 加上参数比较的就是工做区和版本区或者暂存区和版本区之间的区别
      • git diff --cached 暂存区和版本区之间的区别
      • git diff master 工做区和版本区之间的区别
  • 使用版本区的文件覆盖工做区和暂存区的文件
    • git reset --hard head 使用版本区中的文件覆盖工做区和暂存区的文件
    • git reset --hard head^ ^表示回退到当前版本的上一个版本,也就是commit_id
    • git reset --hard commit_id 一样咱们也能够直接回退到某一个固定的版本id状态
    注意:加hard和不加hard之间的区别,加hard表示使用版本库中的文件将暂存区和工做区的全部文件都覆盖掉,使用--hard参数的时候,只能将所有文件都覆盖掉,不能进行单独文件的覆盖,若是只但愿覆盖某一个文件,那么只能使用checkout操做,由于有时候会遇到将别人文件覆盖的状况,或者合并分支合并错误,这个时候就须要回滚操做,reset --hard head 就比较重要了
    通常状况下,一旦进行了回滚操做,证实是以前的代码写乱了,才会进行,可是若是回滚以后,发现已经修改了的代码改的是对的,又想前进上去怎么办。
    git reflog 用来查看全部的提交id,包括以前被回退的id
    接下来容易办了,一样适用强制修改head的指向来进行前进操做
小结
如今总结一下:
    HEAD指向的版本就是当前版本,所以,Git容许咱们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
穿梭前,用git log能够查看提交历史,以便肯定要回退到哪一个版本。
要重返将来,用git reflog查看命令历史,以便肯定要回到将来的哪一个版本。
相关文章
相关标签/搜索