git教程笔记二

Git版本控制

分布式版本控制系统

分布式版本控制系统,则不需要中央服务器,每个协同开发者都拥有一个完整的版本库,这么一来,任何协同开发者用的服务器发生故障,事后都可以用其它协同开发者本地仓库恢复。
由于版本库在本地计算机,也便不再受网络影响了。如果要将本地的修改,推送给其它协同开发者,还需要一台共享服务器,所有开发者通过这台共享服务器同步和更新数据

Git的安装

Window安装
地址win下载Git客户端软件,和普通软件安装方式一样。
Linux安装
CentOS发行版:sudo yum install git
Ubuntu发行版:sudo apt-get install git
Mac安装
打开Terminal直接输入git命令,会自动提示,按提示引导安装即可。

Git工作原理

为了更好的学习Git,我们们必须了解Git管理我们文件的3种状态,分别是已提交(committed)、已修改(modified)和已暂存(staged),由此引入 Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域。
Git仓库目录是Git用来保存项目的元数据和对象数据库的地方。 这是Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。
工作目录是对项目的某个版本独立提取出来的内容。这些从Git仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在Git仓库目录中。有时候也被称作“索引”(Index),不过一般说法还是叫暂存区域。

基本的git工作流程:
1. 在工作目录中修改文件。
2. 暂存文件,将文件的快照放入暂存区域。
3. 提交文件,找到暂存区域的文件,将快照永久性存储到Git仓库目录。

Git本地仓库

Git本地仓库指的是开发者开发设备中的仓库

Git基础操作

命令行方式:任意目录(建议开发目录)右键 > Git Bash Here

  1. 配置用户:

    + 用户名    git config --global user.name "自已的名字"
    + 邮箱        git config --global user.email "自已的邮箱地址"
    + --global 配置当前用户所有仓库
    + --system 配置当前计算机上所有用户的所有仓库
    
    • 配置用户只需执行一次,可以重复使用
  2. 初始化仓库
    我们如果想要利用git进行版本控制,需要将现有项目初始化为一个仓库,或者将一个已有的使用git进行版本控制的仓库克隆到本地。

    • git init
      git init只是创建了一个名为.git的隐藏目录,这个目录就是存储我们历史版本的仓库,ls -al 可以查看。
    • git clone 克隆仓库地址
      执行完这个命令,会在当前目录下生成一个Monment目录(默认和仓库名称相同),这个便是已有一个使用Git管理的项目。
  3. 查看文件状态
    • 通过git status可以检测当前仓库文件的状态
      注:git会忽略空的目录
  4. 添加文件到暂存区
    • git add 文件名 “*”或-A代表所有
    • 经过一段时间后发现新开发的部分有Bug,想要回到之前状态,可以使用git checkout 文件名。
  5. 提交文件
    • git commit -m ‘备注信息’
  6. 查看提交历史
    • git log查看一下提交的历史
    • 每次提交都得到一个SHA值。唯一
  7. 恢复上一次提交的状态
    • 通过SHA值可以回到之前某一次的提交(时光倒流)
    • git reset –hard c888a614e072e2这样便回到了支付功能的状态
    • git log再次查看发现最后一次提交成了支付功能了

Git分支

当我们在初始化仓库的时候(实际上是产生第1次提交时),Git会默认帮我们创建了一个master的分支,并且有指针(HEAD)指到了末端。

指针(HEAD)用来标明当前处于哪个分支的哪个版本,如上图指的处于master分支的最后1个版本。
我们也可以创建自已的分支

  1. 创建分支
    git branch hotfix
    新的分支会在当前分支原有历史版本的结点上进行创建,我称其为子分支
    新建的子分支会继承父分支的所有提交历史。
  2. 切换分支
    git checkout hotfix
  3. 再次提交操作
    修改bug后,提交
  4. 再次回到master时
    master上的文件还是原来的摸样。
    总结:当我们git checkout branchname时,HEAD会自动指向对应分支的末端,工作目录中的源码也会随之发生改变。
    这个时候我们就在hotfix这个分支上修复了这个BUG,而我们原来在master分支上的操作并未受到影响。
  5. 分支合并
    git merge 被合并的分支
  6. 删除分支
    git branch -d hotfix
文章目录
  1. 1. Git版本控制
    1. 1.1. 分布式版本控制系统
      1. 1.1.1. Git的安装
    2. 1.2. Git工作原理
      1. 1.2.1. 基本的git工作流程:
    3. 1.3. Git本地仓库
    4. 1.4. Git基础操作
    5. 1.5. Git分支
|