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

本地工作区-work
本地工作区就是我们实际电脑中的文件夹以及文件。缓存区-index
英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所 以我们把暂存区有时也叫作索引(index)本地仓库-resp
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库远程仓库-remote
相对于本地仓库只能你一个人访问,在需要多人协作的时候功能可以再公有网络上建立一个仓库,提供大家一起访问
常用基本命令
初始化一个git仓库,默认为当前目录也可以指定目录
git init
git init repo-name基于远处仓库初始化本地仓库。基于远程链接初始化本地仓库,也可以指定本地仓库的地址
git clone url
git clone url directory查看在你上次提交之后是否有修改。使用该命令的时候加了 -s 参数,以获得简短的结果输出。
git status
git status -s查看执行 git status 的结果的详细信息
git diff 查看尚未缓存的修改
git diff -cached 查看已经缓存的改动
git diff HEAD 查看已经缓存和未缓存的改动
git diff --stat 显示摘要而非整个diff删除文件,删除之后务必要提交
git rm file 删除工作区和暂存区
git rm -f file 修改未提交时需要强制删除
git rm --cached file 只删除缓存区不删除工作区
git rm -r * 递归删除
本地工作区和其他区域交互常用命令
与缓存区交互
git add file 将工作区指定新增内容或者修改内容提交到缓存区。
git add . 包括所有内容,名字可以使用匹配表达式(*.sh)
git checkout file 将缓存区的file覆盖工作区与本地仓库交互
git checkout HEAD file 从本地仓库中检出文件,会覆盖缓存区和工作区
git commit -am file 直接将工作区文件提交本地仓库省略了git add这一步与远程仓库及交互
git pull origin next:master 取回远程主机origin的next分支的更新,再与本地的master分支合并,同时更新了工作区、缓存区、本地仓库
git pull 如果当前分支只有一个追踪分支,连远程主机名都可以省
缓存区和其他区域交互常用命令
与本地仓库交互
git commit -m file 指定文件暂存区里的改动给提交到本地的版本库
git reset file 本地仓库和缓存区回退到上一个版本,本地工作区内容不变
git reset -soft file 本地仓库回退版本,可直接commit
git reset -hard file 彻底回退版本,工作区内容被覆盖
本地仓库和其他区域交互常用命令
与远程仓库交互
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常用简介的更多相关文章
- iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )
一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的 git的起源 作者是Linux之父:Linus Bened ...
- 版本控制工具——Git常用操作(上)
本文由云+社区发表 作者:工程师小熊 摘要:用了很久的Git和svn,由于总是眼高手低,没能静下心来写这些程序员日常开发最常用的知识点.现在准备开一个专题,专门来总结一下版本控制工具,让我们从git开 ...
- Git常用操作指南
目录 前言 Git简介 安装之后第一步 创建版本库 本地仓库 远程仓库 版本控制 工作区和暂存区 版本回退 撤销修改 删除文件 分支管理 创建与合并分支 解决冲突 分支管理策略 状态存储 多人协作 R ...
- 10年阿里自动化测试架构师帮您收集的:git常用命令大全以及git原理图【泣血推荐,建议收藏】
一.Git分布式版本控制简介 Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势.本来想着只把最有用.最常用的 Git 命令记下来, ...
- git常用命令(持续更新中)
git常用命令(持续更新中) 本地仓库操作git int 初始化本地仓库git add . ...
- Git 常用命令
一.初始環境配置 git config --global user.name "John Doe"git config --global user.email johndoe@ex ...
- 记录 git 常用的操作命令总结
记录 git 常用的操作命令总结 2016-12-15 16:44:04 作为一名开发者,熟悉使用 git 代码管理工具是一项必备的基本技能.git 相较 SVN 而言,其优点不言而喻.git 的功能 ...
- Git 常用命令详解
Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...
- git常用的命令集合
Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ git clone g ...
随机推荐
- 深入理解.net - 4.你必须知道的String
为什么要单独写string,主要是它太常用了,同时又太特殊了,特殊到CLR对它的处理都和其它对象不一样.简直可以称为VIP用户啊.本文并不是一篇介绍如何使用string的文章,而是旨在阐述string ...
- 远程代码仓库URL地址变更后本地仓库的配置方法
作者:荒原之梦 原文链接:http://zhaokaifeng.com/?p=556 今天修改了一个远程仓库的项目名称,导致Git仓库的地址发生了变化,Push代码时显示"Git仓库找不到& ...
- Ajax 与服务器通信 验证编号重复
在最近的一个Web项目中,需要实现一个功能,就是用户在前端输入一个编号,后台需要验证这个编号是否在数据库中已经存在,如果存在就提示用户. 主要用到两个模块.第一:在jsp中添加一个脚本,利用ajax向 ...
- CSS3 :nth-child() 选择器---挖坑
E:nth-child(n) 语法: E:nth-child(n) { sRules } 说明: 匹配父元素的第n个子元素E,假设该子元素不是E,则选择符无效.(也就是说,会检查从body开始的每个元 ...
- Javascript中没有块级作用域(模仿)
在C/C++中,由花括号封闭的代码块都有自己的作用域,也就是块级作用域(私有作用域).而在javascript中则没有块级作用域,首先来看一段代码: function test(){ for(var ...
- app后端设计(4)-- 通讯的安全性
在app的后台设计中,一个很重要的因素是考虑通讯的安全性. 因此,我们需要考虑的要点有: 1. 在app和后台,都不能保存任何用户密码的明文 2. 在app和后台通讯的过程中,怎么保证用户信息的安全性 ...
- Python 枚举
1. 枚举的定义 首先,定义枚举要导入enum模块.枚举定义用class关键字,继承Enum类.用于定义枚举的class和定义类的class是有区别. 示例代码: from enum import E ...
- 原生JS和JQuery的区别
1.原生js和jQuery的入口函数加载模式不同 原生js等页面dom加载完成并且图片等资源也加载完成之后才会执行: jQuery则是等页面dom加载完成执行,不会等图片等资源也加载完成: (也就是说 ...
- Windows 下python 环境安装
1.先在官网上下载安装包,官网地址: https://www.python.org 2. 选择自己需要的版本进行安装,最好选择新版本下载, 3. 下载完成后,双击运行安装,一直next,直至 ...
- cad二次开发--添加对象到模型空间中
通过实体名来将实体加入到模型空间 AcDbObjectId PostToModelSpace(AcDbEntity *pEnt){ //打开块表 AcDbBlockTable *pBlockTable ...