GIT简介
一、GIT概述
1.Version Control
- 版本控制是一种记录文件内容变化, 以便将来查阅特定版本修订情况的系统;
- 其意义在于从个人开发过渡到团队协作;
- Git是一种分布式的版本控制工具,支持离线工作,版本控制在本地进行;
2.Git工作机制
- 系统组成:
- 工作区:存放代码的地方;
- 暂存区:临时存储,用于临时存放你的改动,事实上它是一个文件,保存即将提交的列表信息;
- 本地库:将暂存区的代码提交到本地库,这里有你提交到所有版本的数据,其中HEAD指向最新放入仓库的版本;
- 远程库:将本地库的代码推送到远程库,托管代码的服务器;
- 常用命令:
clone
:从远程仓库中克隆代码到本地仓库;checkout
:从本地仓库检出一个仓库分支然后进行更新;add
:将代码提交到暂存区;commit
:将代码提交到本地仓库;fetch
:从远程库抓取代码到本地仓库,使用较少;pull
:将代码从远程库拉到本地库进行合并(merge),然后放到工作区;push
:更新完成后,将代码推送到远程仓库;
- 文件状态:
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
;二、Git基础操作命令详解
- 查看修改状态(暂存区、工作区):
git status
- 将代码添加到暂存区:
git add xxx
Attention:
git add .
可以一次提交所有修改文件; - 将代码提交到本地仓库:
git commit -m "注释内容" xxx
Attention:xxx(文件名)省略则表明提交所有修改文件;
- 查看提交日志:
git log [option]
--all
:显示所有分支;--pretty=oneline
:将提交信息显示为一行;--graph
:以图的形式显示;
- 版本回退:
git reset --hard commitID
Attention:
①commitID
可以由git log
查看;
②git reflog
可以查看已经删除的提交记录;
③Git 切换版本, 底层其实是移动的 HEAD 指针;
三、Git分支操作
1.What’s Branch
- 在版本控制过程中,同时推进多个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来, 开发自己分支的时候,不会影响主线分支的运行。
- 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
2.分支操作命令详解
- 查看本地分支:
git branch
- 创建本地分支:
git branch xxx
- 切换分支:
git checkout xxx
Attention:
git checkout -b xxx
可以直接切换到一个不存在的分支(创建并切换); - 合并分支:
git merge xxx
- 删除分支: