美文网首页
git 简介

git 简介

作者: zboot | 来源:发表于2019-01-30 14:34 被阅读0次

    Git是什么

    git是目前最先进的分布式版本控制系统,它的核心架构如下图所示,分为四个核心区域。git的常用命令主要是关于这四个区域。

    image.png
    • 本地工作区-work
      本地工作区就是我们实际电脑中的文件夹以及文件。

    • 缓存区-index
      英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所 以我们把暂存区有时也叫作索引(index)

    • 本地仓库-resp
      工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库

    • 远程仓库-remote
      相对于本地仓库只能你一个人访问,在需要多人协作的时候功能可以再公有网络上建立一个仓库,提供大家一起访问

    常用基本命令

    1. 初始化一个git仓库,默认为当前目录也可以指定目录

    git init
    git init repo-name

    1. 基于远处仓库初始化本地仓库。基于远程链接初始化本地仓库,也可以指定本地仓库的地址

    git clone url
    git clone url directory

    3.查看在你上次提交之后是否有修改。使用该命令的时候加了 -s 参数,以获得简短的结果输出。

    git status
    git status -s

    4.查看执行 git status 的结果的详细信息

    git diff 查看尚未缓存的修改
    git diff -cached 查看已经缓存的改动
    git diff HEAD 查看已经缓存和未缓存的改动
    git diff --stat 显示摘要而非整个diff

    5.删除文件,删除之后务必要提交

    git rm file 删除工作区和暂存区
    git rm -f file 修改未提交时需要强制删除
    git rm --cached file 只删除缓存区不删除工作区
    git rm -r * 递归删除

    本地工作区和其他区域交互常用命令

    1. 与缓存区交互

    git add file 将工作区指定新增内容或者修改内容提交到缓存区。
    git add . 包括所有内容,名字可以使用匹配表达式(*.sh)
    git checkout file 将缓存区的file覆盖工作区

    1. 与本地仓库交互

    git checkout HEAD file 从本地仓库中检出文件,会覆盖缓存区和工作区
    git commit -am file 直接将工作区文件提交本地仓库省略了git add这一步

    1. 与远程仓库及交互

    git pull origin next:master 取回远程主机origin的next分支的更新,再与本地的master分支合并,同时更新了工作区、缓存区、本地仓库
    git pull 如果当前分支只有一个追踪分支,连远程主机名都可以省

    缓存区和其他区域交互常用命令

    1. 与本地仓库交互

    git commit -m file 指定文件暂存区里的改动给提交到本地的版本库
    git reset file 本地仓库和缓存区回退到上一个版本,本地工作区内容不变
    git reset -soft file 本地仓库回退版本,可直接commit
    git reset -hard file 彻底回退版本,工作区内容被覆盖

    本地仓库和其他区域交互常用命令

    1. 与远程仓库交互

    git remote 管理远程仓库的工作,包括添加远程库,移除废弃的远程库,管理各式远程库分支,定义是否跟踪这些分支
    git push 将本地仓库的更新推送至远程仓库
    git fetch 获取远程仓库的更新到本地仓库

    git 文件的状态标识

    • A: 你本地暂存区新增的文件(本地仓库中没有).

    • C: 文件的一个新拷贝.

    • D: 你本地删除的文件(服务器上还在).

    • M: 工作区文件的内容或者mode被修改了.

    • R: 文件名被修改了。

    • T: 文件的类型被修改了。

    • U: 文件没有被合并(你需要完成合并才能进行提交)。

    • X: 未知状态(很可能是遇到git的bug了,你可以向git提交bug report)。

    Git 和SVN

    在直观的使用层面我们可以发现git是分布式的,svn是集中式的。我们在使用git的时候无需搭建服务器即可以进行版本控制,只有在需要多人共享的时候,才需要服务器端。而SVN必须是有一个服务器端。
    git 和 svn 对文件版本控制的方式也不同,这一点对使用者来说是透明的
    如果你有svn的使用经验,在windows环境下,推荐使用TortoiseGit,git图形客户端。上手较为方便,但是也需要了解git的结构以及基本命令。


    以上内容只是对git做了一个简单的介绍,在后续的使用过程中有机会了会对各个命令做详细的介绍。


    相关文章

      网友评论

          本文标题:git 简介

          本文链接:https://www.haomeiwen.com/subject/dxwnjqtx.html