五分钟带你了解git
- GIT
- GIT 与 SVN 区别
- Git的工作流程
- Git工作区,暂存区
- Git基本操作
- git init
- 配置
- 提交与修改
- 提交日志
- 远程操作
- Git 分支管理
- 创建分支命令
- 切换分支命令
- 合并分支命令
- 列出分支命令
- 删除分支命令
- Git 标签
GIT
Git是一个开源的分布式版本控制,用于敏捷高效处理大或者小的项目。
GIT 与 SVN 区别
Git不仅仅是一个版本控制,他也是一个内容管理系统(CMS),工作管理系统
- Git是分布式的,SVN不是
- Git按照内容按照原数据的方式储存,而SVN是按照文件
- Git分支和SVN的分支不同
- Git没有一个全局的版本号,而SVN
- Git的完整性要优于,Git 的内容存储使用的是 SHA-1 哈希算法。
以下是更为直观的图片
Git的工作流程
一般的工作流程如下
- 克隆Git资源作为工作目录
- 在克隆的资源或者修改文件
- 如果其他人修改了
master
分支上的代码你可以更新资源 - 在提交之前可以查看资源
- 提交修改
- 在修改完成之后,如果发生错误,可以撤回提交并在此修改
Git工作区,暂存区
基本概念
- 工作区:就是在你本地电脑看到的工作目录
- 暂存区:一般放在
.git/index
文件中,所以我们也把暂存区 - 版本库:工作目录有一个隐藏的目录
git
,这个不算是工作区,这个是Git的版本库
-
图中左侧为工作区,右侧为版本库,在版本库中标记“index”的区域是暂存区,标记为“master”的是master分支所代表的树目录
-
有一个为HADE的标签,实际上是指向master分支的一个“游标”,一般来说命令中出现HEAD地方可以用master来替换
-
图中的‘Object’实际位于 “.git/objects” 目录下,里面包含了创建的各种对象及内容。
-
当对工作区修改(或者新增)文件执行
git add
命令的时候,暂存区的目录树被更新,然后修改的内容写入到对象库中一个新的对象中去 -
当执行
git commit
时,暂存区的目录树会被重写,然后muster的目录树就是提交暂存区的目录树 -
当执行
git reset HEAD
命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。 -
当执行
git rm --cached <file>
命令时,会直接从暂存区删除文件,工作区则不做出改变。 -
当执行
git checkout
. 或者git checkout -- <file>
命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区中的改动。 -
当执行
git checkout HEAD
. 或者git checkout HEAD <file>
命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。
Git基本操作
git init
Git使用 git init
来初始化一个仓库,使用该命令之后,git仓库会生成一个.git
目录,该目录包含了资源的所有原数据,其他目录保持不变
实例
git init
接下来,如果说有当下的目录里面有几个文件需要加入版本控制,需要先用 git add 命令告诉Git对这些文件进行跟踪然后提交,相关命令如下:
# 告诉git那些文件需要添加版本控制
$ git add
# git 提交到本地版本库中,并在Oject中创建对象
$ git commit -m '项目初始化'
配置
git 的设置使用git config
命令
显示当前的git配置信息:
git config
编辑git配置文件:
# 针对当前仓库
$ git config -e
# 针对系统上面的所有仓库
$ git config -e --global
设置提交代码的用户信息:
git config --global user.name 'jdx'
git config --global user.email test@qq.com
如果说去掉--gloabl
那么只对当前仓库有用
提交与修改
git的工作就是创建和保存你的项目快照以及和之后的快照相对比,以下命令就是有关创建于提交你的项目的快照命令
# 添加文件到仓库
git add
# 查看仓库当前的状态,显示有变更的文件
git status
# 比较文件的不同,暂存区和工作区的差别
git diff
# 提交暂存区到本地仓库
git commit
# 回退版本
git reset
# 删除工作区文件
git rm
# 移动或者重命名工作文件
git mv
提交日志
# 查看历史记录
git log
# 以列表的形式查看指定的历史文件修改记录
git blame <file>
远程操作
# 远程操作仓库
git remote
# 从远程获取代码库
git ·fetch
# 下载远程代码并合并
git pull
# 上传代码并合并
git push
Git 分支管理
使用git分支意味着你可以从主线开发中分离出来,在不影响主分支的情况下,继续开发
创建分支命令
git branch (branchName)
切换分支命令
git checkout (branchName)
当切换分支的时候,git会使用你切换分支最后快照作为你的工作目录,所以多个分支不需要多个目录
合并分支命令
git merge
列出分支命令
git branch
没有参数时,git branch会列出你在本地的分支
删除分支命令
git branch -d(branch)
Git 标签
这里就是为了发布时方便进行版本控制
git tag -a v1.0
最后
以上就是欢喜夏天最近收集整理的关于五分钟带你了解gitGITGIT 与 SVN 区别Git的工作流程Git工作区,暂存区Git基本操作Git 分支管理Git 标签的全部内容,更多相关五分钟带你了解gitGITGIT内容请搜索靠谱客的其他文章。
发表评论 取消回复