浅谈我对Git的理解

  Git是目前世界上最先进的分布式版本控制体系。

  什么是版本控制体系?

  举个例子说,假如你的BOSS让你统计管理一下本公司的所有在职员工名单,只要人员有变动就需要更改一次,如果你是你所在的公司是一个工厂,每天人员流动很大,前几个月一个员工离职了,过了几个月之后他又回来应聘了,你的BOSS说:我记得之前这个人在这里工作过,你把之前他的资料发给我。如果用word文档记录,这就需要在每次有人员变动的时候,你都需要把之前的给备份保存下来,久而久之,你的电脑就堆满了各种文档记录。。。

  而你记不清楚自己什么时候一不小心删除了BOSS需要的那个文档记录一个文档,那结果。。。

  这时候你就会想如果有一个软件不但自动帮我记录当前修改后的文档而且把修改前的自动保存下来就好了,于是乎就诞生了“版本控制体系”。

 

git相关概念:
    1、本地仓库
    2、远程仓库
git的使用:
    使用git之前先要有账号
    首先配置用户名和邮箱
    1、配置用户名称
    git config --global user.name zhangsan
    配置用户邮箱
    git config --global user.email "zhangsan@163.com"
 
    查看配置信息
    git config --list
 
    2、初始化本地仓库
    git init
 
    查看当前仓库的状态
    git status
 
    把工作目录中的文件添加到暂存区
    git add 文件列表(可以是单个文件,也可以是多个文件,多个文件之间使用空格隔开;也可以是*,表示所有的未跟踪文件全部提交到暂存区)
 
    git add命令有两个作用:1、把未跟踪的文件添加到暂存区;2、把已修改的文件添加到暂存区
 
    把暂存区中文件提交到本地仓库
    git commit -m 备注信息
 
    对文件内容的修改进行回滚
    git checkout -- files名
    git checkout . 回滚所有的文件内容的修改

  

小结:
1.三个工作目录四个状态:
     工作目录 、  暂存区 、 本地仓库
     未追踪(untraced)、  已暂存(staged) 、 已提交(commited)、   已修改(modified)
2.本地仓库常用的命令
  • 初始化本地仓库
          git init
  • 查看仓库的文件状态
          git  status
  • 把工作目录中的新添加的文件添加到暂存区(把修改后的内容添加到暂存区)
    • git  add  --(空格)文件列表(文件之前使用空格隔开)
    • git  add(空格)*  添加所有文件
    • git  add 文件夹名称
  •  把暂存区文件添加到本地仓库
    •   git commit  可以直接这样执行,但是会进入vi编辑敞口,此时要写入备注信息(a(进入可编辑状态) ——》shift+wq(退出))
    •   git  commit  -m “备注”(提交所有的暂存文件)
    •   git  commit  -m  "备注"  文件列表(提交特定的文件)
    •   git  commit  -a  -m  "备注"  (跳过暂存区直接提交)
  • 回滚修改的内容
    • git  checkout   --(空格) 文件列表(回滚指定文件)
    • git  checkout  .  (回滚所有的文件,慎重使用)
  • 回滚版本快照
    • git  reset  --hard
    • git  reset  --hard  HEAD
    • git  reset  --hard  HEAD^
    • git  rest   --hard  commitid(回滚指定的版本快照)
      • 修改版本快照的指向
      • 覆盖暂存区
      • 覆盖工作目录
    • git  reset  --soft
    • git  reset  --soft HEAD
    • git  reset  --soft HEAD^
      • 只修改版本快照的指向
    • git  reset
    • git  reset  --mixed
    • git  reset  HEAD
    • git  reset  HEAD^
    • git  reset  commitid
      • 修改版本快照的指向
      • 覆盖暂存区,不覆盖工作目录
 3.分支操作    
  • 创建分支(分支名称不需要加引号)
    • git  branch  分支名称
  • 切换分支
    • git  checkout  分支名称
  • 合并分支(把别的分支合并到当前分支)
    • git  merge 分支名称
  • 删除分支
    • git  branch -D 分支名称(强制删除分支)
    • git  branch  -d  分支名称(后续单独演示 - 与远程分支有关)
  • 创建并切换分支(该命令相当于  git  branch  分支名称  和  git checkout 分支名称  ——两个命令的共同作用)
    • git  checkout  -b  分支名称
posted @ 2017-06-05 19:32  SayHi~  阅读(322)  评论(0)    收藏  举报