一、git工具使用
git简介
详细简介:https://blog.csdn.net/ThinkWon/article/details/94346816
Git理解
:
- Git是一个
开源的分布式版本控制系统
,用于敏捷高效地处理任何或小或大的项目。 - Git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
- Git与常用的
版本控制工具
CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
分布式版本控制系统
Git特点
:
- 速度
- 简单的设计
- 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
- 完全分布式
- 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
Git 有三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged
)。
- 已修改表示修改了文件,但还没保存到数据库中。
- 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
- 已提交表示数据已经安全地保存在本地数据库中。
这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录
。
Git工作流程
一般工作流程
如下:
从远程仓库中克隆 Git 资源作为本地仓库;
从本地仓库中checkout代码然后进行代码修改;
在提交本地仓库前先将代码提交到暂存区;
提交修改,提交到本地仓库;本地仓库中保存修改的各个历史版本;
在需要和团队成员共享代码时,可以将修改代码push到远程仓库。
Git 的工作流程图
如下:
Git的四个核心概念
工作区、暂存区、版本库、远程仓库
Workspace
: 工作区,就是你平时存放项目代码的地方
Index / Stage
: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
Repository
: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
Remote
: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
git使用
安装Git:
获取 Git 仓库:
- 将尚未进行版本控制的本地目录转换为 Git 仓库。
- 从其它服务器克隆 一个已存在的 Git 仓库。比如: git clone
初始化版本库:
demo目录初始化为git仓库,代码库.git,demo目录为工作区
mkdir demo
git init
纯文本文件会放在版本库
!!!(如yaml文件,word不是纯文本文件)
创建测试文件,README.md,查看状态 ??,表示不在版本库中
将工作区文件README.md添加到暂存区,查看状态 A,表示此时已经在暂存区中
将暂存区的文件README.md提交,默认提交的是整个暂存区的数据,不只是刚才的文件,提交后在主分支中
第一次提交需要设置 用户名和邮箱!!!,重新提交,查看状态,此时提交成功
修改工作区的文件,查看状态,M为红色,靠右显示,M:已修改
检查当前文件状态
$ git status
$ git status -s //简化输出
重新add添加到缓存区,查看状态,M为绿色,靠左显示,表示已经提交至暂存区
全部提交,此时使用update,查看全部提交后的状态,提交成功 !!!
文件中追加内容后查看,M为红色,靠右显示,M:已修改
checkout:撤销
,再次查看文件内容,恢复到追加前状态
继续vim编辑md文件,查看状态为 M红色,靠右,重新add添加至缓存区,查看状态为 M绿色,靠左
再次追加内容至md文件中,此时查看状态,两个M颜色不同,左边绿色M表示:(1和2行的)已经提交暂存区,右边红色M表示:第三行内容在工作区,未提交至缓存区域
M(右)工作区,左(暂存区)
重新添加,查看状态,此时都已在缓存区中!!!
重置暂存区的指定文件,恢复文件至工作区状态
,checkout:撤销,恢复文件至上次工作区文件内容
.gitconfig 查看配置信息
可以看到设定的用户和邮箱信息
忽略隐藏文件
创建隐藏文件和目录:纯目录不会发现,目录里有文件才会关注
查看隐藏文件和目录的状态 ??
编辑.gitignore,.*表示忽略所有隐藏文件,/test:只忽略当前目录下的test文件 build/: 忽略任何目录下名为 build 的文件夹
md文件中追加内容,commit -a -m:两步和为一步,add+commit
,查看状态,成功提交
git log 显示当前分支的版本历史
移除文件
(1)直接 rm 删除文
件,使用 checkout
撤销,可恢复文件
此时是工作区删除,但是暂存库中未删除
(2)git rm 删除文件
,reset+checkout
可恢复文件
暂存区删除
(3)git rm + commit delete 删除文件,
版本库删除
git reflog 版本回退 ,git reset 指定版本,恢复文件