1.Git安装与配置
1.1 什么是Git
- Git是目前世界上最先进的分布式版本控制系统。
- Git是免费、开源的
- 最初Git是为辅助 Linux 内核开发的,来替代 BitKeeper
作者:Linux和Git之父李纳斯·托沃兹(Linus Benedic Torvalds)1969、芬兰
优点:
- 适合分布式开发,强调个体。
- 公共服务器压力和数据量都不会太大。
- 速度快、灵活。
- 任意两个开发者之间可以很容易的解决冲突。
- 离线工作。
缺点:
- 模式上比SVN更加复杂。
- 不符合常规思维。
- 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
源码: https://github.com/git/git/
1.2 搭建Git工作环境
1.2.1 下载Git
打开 git官网,下载git对应操作系统的版本
1.2.2 安装
无脑下一步
- Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多
- Git CMD:Windows风格的命令行
- Git GUI:图形界面
1.2.4 Linux与Mac OS安装Git
Linux安装Git:sudo apt-get install git 命令行就可以安装了。
Mac OS安装Git: https://git-scm.com/download/mac,下载双击.pkg安装
1.2.5 Bash基本操作命令
命令名称英文作用lslist查看当前目录下的内容pwdprint work directory查看当前所在目录cd[目录名]change directory切换目录mkdir[目录名]make directory创建目录touchtouch创建文件rm[文件名]remove删除指定文件cp[源文件或者目录] [目的文件或者目录]cpoy复制mv[源文件或者目录] [目的文件或者目录]move移动resetreset重置终端clearclear清屏historyhistory查看历史命令
1.3 Git配置 - git config
1.3.1、查看配置 - git config -l
查看不同级别的配置文件:
#查看系统configgit config --system --list
#查看当前用户(global)配置git config --global --list
#查看当前仓库配置信息git config --local --list
1.3.2 设置用户名与邮箱(用户标识,必要)
$ git config --global user.name "qf"#名称
$ git config --global user.email [email protected] #邮箱
2.Git理论基础
2.1 工作区域
Git本地有三个工作区域:工作目录(Working Directory)、**暂存区(Stage/Index)、资源库(Repository或Git Directory)**。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:
- Workspace:工作区,就是你平时存放项目代码的地方
- Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
- Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
- Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
2.2 工作流程
git的工作流程一般是这样的:
1、在工作目录中添加、修改文件;
2、将需要进行版本管理的文件放入暂存区域;
3、将暂存区域的文件提交到git仓库。
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
2.3 图解教程
个人认为Git的原理相比别的版本控制器还是复杂一些的,有一份图解教程比较直观:
图解教程英文原版
图解教程中文版
3 Git操作
3.1 创建工作目录与常用指令
工作目录(WorkSpace)一般就是你希望Git帮助你管理的文件夹,可以是你项目的目录,也可以是一个空目录,建议不要有中文。
日常使用只要记住下图6个命令:
3.2 获得Git仓库
创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库。
3.2.1 创建全新仓库
# 在当前目录新建一个Git代码库
$ git init
3.2.2 克隆远程仓库
- 注册登录gitee
- 创建仓库
- 克隆
3.3 Git文件操作
版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。GIT不关心文件两个版本之间的具体差别,而是关心文件的整体是否有改变,若文件被改变,在添加提交时就生成文件新版本的快照,而判断文件整体是否改变的方法就是用SHA-1算法计算文件的校验和。
3.3.1 文件4种状态
- Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过
git add
状态变为Staged
. - Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为
Modified
. 如果使用git rm
移出版本库, 则成为Untracked
文件 - Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过
git add
可进入暂存staged
状态, 使用git checkout
则丢弃修改过, 返回到unmodify
状态, 这个git checkout
即从库中取出文件, 覆盖当前修改 - Staged: 暂存状态. 执行
git commit
则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify
状态. 执行git reset HEAD filename
取消暂存, 文件状态为Modified
3.3.2 查看文件状态
#查看指定文件状态git status [filename]#查看所有文件状态git status
3.3.3 添加文件与目录
3.3.4 移除文件与目录(撤销add)
#直接从暂存区删除文件,工作区则不做出改变gitrm --cached <file>
3.3.5 免密登录
- 打开cmd,执行ssh-keygen命令,三处选项直接回车
- gitee官网设置
3.3.6 提交到远程仓库
总结
无分支工作流程如下:
- 克隆项目:git clone url地址
- 新增或修改项目(工作区)
- 将新增或修改的项目添加到暂存区(git add .)
- 将暂存区的项目提交到本地仓库(git commit -m “注释”)
- 每次上传项目到远程仓库之前,先重新拉取项目,避免冲突(git pull)
- 将本地仓库文件提交到远程仓库(git push)
版权归原作者 Arbitrary.` 所有, 如有侵权,请联系我们删除。