Little eagle - git学习笔记
简介
git、svn和cvs的主要区别在于git是分布式版本控制系统,而svn和cvs则是集中式版本控制系统。集中式版本控制系统所有文件系统存放在中央服务器上,工作模式更像是一个C/S模式,本地用户通过安装客户端来与服务器进行版本的获取与更新操作。问题是当服务器处于脱机状态时,所有用户都要停止工作。
为了解决该问题,git则抛弃了这种机制,用户将所有文件包括版本信息下载到本地,提交和修改可以在本地执行,在修改确定后再与远程服务器保持同步。
简单理解git是什么?
git是一种开源的 分布式 版本控制 工具
安装和配置
Linux下安装git
Ubuntu10.10及以上版本、Debain squeeze及以上版本使用以下命令:
1 | $ sudo aptitude install git |
RHEL、Fedora、Centos等系统下的安装:
1 | $ yum install git |
Windows下安装git
git官网下载对应位数安装包按指引安装即可
此外推荐一款Windows下git图形化操作界面软件TortoiseGit
git基本配置
配置个人身份
用于表示git提交记录中的个人信息,表明该提交操作人是谁
1 | git config --global user.name "youname" |
服务器的认证配置
以下两种方式任选其一(推荐ssh协议认证方式):
(1)ssh协议认证方式
以下配置以部署到github为例
首先生成公钥(yue),一路回车即可
1 | ssh-keygen -t rsa -C "youremail" |
在默认路径下找到C:\.ssh_rsa.pub,以记事本方式打开,复制全部文本。
打开github,如下
title命名随意(能够让你想起来是哪台电脑的备注即可),将之前复制的全部文本粘贴到Key文本框中,点击绿色按钮Add SSH key!搞定!
(2)http/ https协议认证方式
设置口令缓存
1 | git config --global credential.helper store |
添加https证书信任
1 | git config http.sslverify false |
git基本命令
工作区与文件状态
要理解git命令的作用,前提是搞懂git工作区域的概念,git一共有四个工作区域,工作区域之间的关系及指令如下:
此外,还要对git文件的四种状态有初步理解,分别是:
Untracked:文件为加入git库,不参与版本控制,通过git add转为Staged
Unmodify:已入库未修改。有两种转变方式,git rm移除版本库转为Untrackded 或者被修改转为Modified
Modified:已修改。该状态下也有两种转变方式,git add进入暂存Staged状态,git check丢弃修改进入Unmodify状态
Staged:暂存状态。git commit同步到库中,此时远程和本地文件一直,文件变为Unmodify状态。而如果是git reset filename取消暂存,则变为Modified状态。
直观的四种状态的转变如下图:
常用命令
新建代码库
1 | # 在当前目录新建一个Git代码库 |
查看文件状态
1 | #查看指定文件状态 |
工作区<-->暂存区
1 | # 添加指定文件到暂存区 |
工作区<-->资源库(版本库)
1 | #将暂存区-->资源库(版本库) |
远程操作
1 | # 取回远程仓库的变化,并与本地分支合并 |
其它常用命令
1 | # 显示当前的Git配置 |