Git学习笔记超级无敌精炼版(一) - 基本操作

参考文献

基本概念:

工作区:

  本地目录,写代码修改的地方

暂存区:

  在.git目录下的index文件中,作为一个暂时存储修改的区域

版本库:

工作区的.git隐藏目录中,不算工作区,而是git的版本库,版本库是个仓库,里面所有文件都可以被Git管理,可以追踪每一个文件的修改,删除,并记录追踪历史,可以随时还原

  • 图中HEAD是只想master分支的一个游标,可以替换为master
  • object位于.git/objects目录下,包含了创建的各种对象及内容

安装配置

  1. http://git-scm.com/downloads 下载安装
  2. git config --global user.name "yourName"  配置个人的用户名称
  3. git config --global user.email [email protected] 配置个人的电子邮件地址
  4. 使用了--global选项则更改的用户主目录下的配置文件,所有的项目都会默认这个,如果需要特定的项目特定的信息,去掉global重新配置即可

创建版本库

  1. 创建本地目录作为工作区
  2. git int 命令将当前目录变成可管理的Git仓库
$ mkdir learngit  //创建目录
$ cd learngit     //加载目录
$ pwd             //显示当前目录


$ git init        //初始化为仓库

添加文件

  1. 文件必须在git目录下(子目录也行)
  2. git add 把文件添加到暂存区(可添加多个,也可以添加多次来覆盖之前的修改,使用--all参数一次性全部添加)
  3. git commit -m "本次提交的说明" 来将文件提交到当前分支
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."


//常用的指令
-cd 进入对应路径
    - 无参数默认根目录
    - ~根目录

-mkdir 创建文件夹
-rmdir 删除文件夹
-rm file  删除文件

-pwd 显示当前目录
-ls  显示当前目录的内容

-cat readme.txt 显示整个文件
-vi readme.txt 打开readme.txt文件,若没有则创建一个
  键入 I a s 进入输入模式
  键入 esc 退出输入模式
  键入 :q 不保存直接退出
  键入 :q! 强制退出
  键入 :w 保存
  键入 :wq 保存并退出
  键入 :e 放弃修改,从上次保存开始重新编辑w

查看状态

  1. git status 查看仓库当前状态
  2. git diff file.txt 查看做了什么修改(与版本库中的文件比较)
  3. git log 查看从近到远的提交日志(可以加上--pretty=oneline参数来只显示一行)
  4. git reflog 查看每一次指令的记录(版本回退之后可以通过这个来找被回退的版本的commit id) 
$ git status                //查看当前状态
$ git diff readme.txt       //查看文件修改
$ git log --pretty=oneline  //查看日志并单行显示
$ git reflog                //查看每一次命令的记录

版本控制

  • git reset 返回旧版本,同时清空暂存区,同时将本地工作区的文件替换为目标版本的文件(--hard很重要)
$ git reset --hard HEAD^  //HEAD表示当前版本,HEAD^表示上一个版本,HEAD~100表示前一百个版本
$ git reset --hard 1094a  //1094a表示版本号,可以返回到指定版本

管理修改

  1. git checkout -- file.txt 撤销本地工作区的修改到暂存区的状态或者版本库的状态(--很重要,与切换分支的指令区分开)
  2. git reset HEAD file.txt  可以把暂存区的修改撤销掉,不会修改本地工作区文件,如果需要撤销本地已经删除的文件,请一定要加HEAD
$ git checkout -- readme.txt  //撤销本地文件的修改
$ git reset HEAD readme.txt   //把暂存区的修改清空,不会修改本地工作区,HEAD表示最新版本

删除文件

  • git rm 用于删除一个文件(本地删除,并将修改提交到暂存区,效果和手动删除并git  add是一样的)
$ git rm test.txt      //本地删除并提交到暂存区

猜你喜欢

转载自blog.csdn.net/Aproducer/article/details/81983324