Git综述

开始

  • Git跟踪并管理的是修改,而非文件。
  • git remote add xxx https://git.github.com/xxx/xxx.git 添加远程仓库别名

帮助

  • git help -a 查看所有的命令
  • git help <command> 查看某个命令的文档

历史记录 Git log

  • git log命令显示从最近到最远的提交日志,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数;

版本回滚 Git reset

  • Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(十六进制hash值),上一个版本就是HEAD,上上一个版本就是``HEAD^^``,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100
    git reset --hard HEAD^
    

reset 后中间的版本记录会消失, 如果需要回到未来的某个版本, 需要得到该版本的版本号hash值 . 版本号没必要写全,前几位就可以了,Git会自动去找。
Git 版本的回退速度非常快, 因为Git内部有个指向当前版本的指针. 回退只要改变指针指向就行了.
如果没有找到记录,用git reflog查看命令历史,以便确定要回到未来的哪个版本

工作区和暂存区

  • 工作取就是在电脑里能看到的目录, 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD
    image.png
  • 我们把文件往Git版本库里添加的时候,是分两步执行的:
    第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
    第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
    commit后暂存区会被清空.

查看区别

  • git diff HEAD -- readme.txt查看工作区和版本库里面最新版本的区别

撤销修改

  • git checkout -- file 可以丢弃工作区的修改:
    • 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
    • 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。用命令git reset HEAD file可以把暂存区的修改撤销(unstage),重新放回工作区. 此时工作区有修改, 然后 checkout 再次撤销更改. 或者直接 git reset --hard head?
      总之,就是让这个文件回到最近一次git commit或git add时的状态。
  • 如果已经commit , 只能版本回退了.

删除

  • git rm xxxx 然后提交即可
  • 误删直接checkout 即可
  • git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容