文章目录
- 前言
- 1、Git 安装和使用
- 2、Git 工作区域和状态
- 3、Git 常用指令
- 3.1、Git 参数配置
- 3.2、Git 本地仓库
- 3.3、Git 远程仓库
- 3.4、分支
前言
Git 是一个免费,开源的分布式版本控制系统,可以敏捷高效的进行各种规模大小的版本管理。Git 与 SVN 的二者最核心的区别在于:Git 是分布式的,而 SVN 是集中式的版本控制系统。而分布式相对于集中式的最大区别在于开发者可以提交到本地,每个开发者都可以通过克隆操作在本地机器上复制一个完整的 Git 仓库作为本地仓库,这样就非常适合离线工作。
分布式和集中式对比
SVN 集中式版本控制系统,版本库都是集中存放在中央处理器上的,团队成员在个人本地计算机上进行功能的代码开发工作,每当完成一个单元模块,就需要上传到中央处理器服务器。若团队成员需要修改某个单元的模块代码,就需要先从服务器上检出最新的代码,进行相应的修改,然后再进行上传提交的操作。在整个流程中,我们发现一个必要的条件是:整个团队内(个人计算机与中央服务器)必须处在联网状态下才可以正常工作。那么就存在一个问题:若是在互联网上,网速就是一个最大的瓶颈。
Git 分布式版本控制系统,该系统中没有 “中央处理器” 的概念,团队内每个人的计算机都是一个完整得版本库,完全可以离线工作,那么既然每个成员计算机都有一个完整的版本库,又如何进行多人协作呢?比如团队成员A修改了文件X,若成员成员B也修改了文件X,此时A、B之间只需要把各自的修改推动提交给对方,就可以互相看到对方的修改了。与集中式的版本控制相比,分布式的安全性要提高很多。由于每个人的计算机都有一个完成的版本库,若某个团队成员的计算机坏掉了也没关系,随便从其他成员计算机里复制一份即可。但是若在集中式版本控制系统的中央处理器出了问题,所有的团队成员都无法继续工作。
1、Git 安装和使用
安装
官网:https://git-scm.com
使用
2、Git 工作区域和状态
工作区域
- workspace 工作区:是对项目的某个版本独立提取出来的内容,可以在这基础上进行文件的修改。就是你在电脑里能看到的目录。
- index 暂存区:一个保存了下次将提交的文件列表信息的文件。位置在 .git/index,git add 后的内容实际就是放在暂存区。
- Repository 本地仓库:存放项目历史版本的目录,就是执行 git init 指令之后,在工作空间文件夹生成的.git的目录,用来保存项目的元数据和对象数据库的地方,克隆仓库指的就是克隆这里的数据。整个/.git目录,表示Git 的版本库,本地 git commit 后的内容实际就是记录在版本库。
状态
- 已修改:表示修改了文件,但还没保存到本地仓库中。(修改代码操作)
- 已暂存:表示对一个已修改文件的当前 版本做了标记,使之包含在下次提交的快照中。(git add 操作)
- 已提交:表示数据已经安全的 保存在本地仓库中。(git commit 操作)
3、Git 常用指令
3.1、Git 参数配置
- 显示当前 git 配置信息
git config -l
- 设置提交代码时的用户名称和电邮地址(这两个比较常见且重要)
git config --global user.name "yangjj"
git config --global user.email xxxxx@xx.com
说明:
- workspace:工作区
- staging area:暂存区/缓存区
- local repository:或本地仓库
- remote repository:远程仓库
3.2、Git 本地仓库
- 初始化仓库有两种方法:
直接本地初始化
和从远端仓库 clone 到本地
① 直接本地初始化
git init
② 从远端仓库 clone 到本地,其中<repo>
表示仓库地址,<directory>
可以用于指定本地具体目录名称,不写默认当前目录。
git clone <repo> <directory>
- 查看仓库状态
git status
- 将文件添加到暂存区
① 添加指定问价到缓存区
git add [file1/dir1] [file2/dir2] ...
② 添加当前所有修改到暂存区
git add .
- 命令将暂存区内容添加到本地仓库中
① 提交暂存区所有修改到本地仓库中,其中[message]
主要是本次提交的备注信息,一般用单引号或双引号括起来
git commit -m [message]
② 提交暂存区指定文件到本地仓库中,其中[message]
主要是本次提交的备注信息
git commit [file1] [file2] ... -m [message]
③ git commit -a表示修改内容后不用git add这一步,直接提交到仓库
git commit -a -m [message]
3.3、Git 远程仓库
- 关联远程仓库
git remote add origin 远程仓库的地址
- 查看远程仓库地址
git remote -v
- 文件推送到远程仓库
git push origin 分支名
- 克隆远程仓库默认分支
git clone 克隆的远程仓库地址
- 克隆远程仓库指定分支
git clone -b 分支名 克隆的远程仓库地址
- 远程仓库下载
git pull origin 分支名
3.4、分支
- 查看分支
git branch
- 创建分支
git branch 分支名
- 切换分支
git checkout 分支名
- 查看日志
git log
- 分支合并
git merge 分支a