Git是分布式版本管理系统
Svn是集中式版本管理系统

git速度快,适合大规模协同开发

什么是分布式版本管理系统

假如有10个人,每个人的代码库都是独立的,自己想进行代码提交回滚都可以,无需链接中央服务器,无需联网,所以git是本地开发还可以链接中央服务器与别人交换信息

Git生态

Git是分布式版本管理系统
Gitlab 是一个git的私有库的解决方案
Github 是git公有库的解决方案

Git的原理

Git有四个区域

本地仓库,暂存区域,工作目录是一个区域,(就是上一部我们创建的目录test)

使用git init以后这个目录就包含了这三个区域

远程仓库就相当于svn的中央仓库

GIT的四种状态

Git如何对版本进行管理?
Git会对它管理的文件打一个标识这个标识就是四种状态(每个标识处于哪种状态)

  1. Untarcked状态(未被追踪)如果一个文件第一次放到git库的工作目录里那么它叫做未被追踪的文件处于未被追踪的状态(这个文件还没有纳入版本管理)
  2. staged状态 (以暂存)使用git add 把这个文件推到暂存区域,这个文件也进入了staged状态
  3. Unmodifile状态 (未被修改)使用 git commit把文件提交到本地仓库,文件也就进入了未被修改的状态(所有文件推送到本地仓库都会变为未被修改的状态)
  4. Modifile状态(已修改)如果对文件进行了编辑,文件会从为被修改的状态变为已修改的状态已修改的文件会从本地仓库重新拉回到工作目录里文件修改完成在进行提交,形成循环

GIT安装

注意不要使用git1.8以下版本,推荐使用2.7版本

安装依赖
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
公网下载git
wget https://github.com/git/git/archive/v2.7.4.zip
解压文件
unzip v2.7.4.zip (如果没有unzip需用yum下载)
进入目录
cd git-2.7.
编译安装
make prefix=/usr/local/git all
make prefix=/usr/local/git install
rm -rf /usr/bin/git
ln -s /usr/local/git/bin/git /usr/bin/git
查看版本
git --version

GIT初始化

新建目录
mkdir /root/test
初始化
cd /root/test
git init (初始化之后这个目录就被git的版本控制)
添加版本库的用户信息(就是在提交的时候记录了是谁提交的和他的邮箱)
git config --global user.name "wk" (提交名字)
git config --global user.email xxxxxxxx@.com (提交邮箱)
git config --list (查看提交的信息)

GIT常用命令

git add   加入暂存(索引区)
git status 查看状态
git status-s 状态概览
git diff 尚未暂存的文件
git diff --staged 暂存区文件
git commit 提交更新
git commit -m "first commit"  第一次提交
git reset 回滚 #--soft 缓存区和工作目录都不会被改变 --mixed 默认选项。缓存区和你指定的提交同步,但工作目录不受影响 --hard 缓存区和工作目录都同步到你指定的提交 git rm 从版本库中移除 git rm --cached README 从暂存区中移除 git mv 相当于执行 mv ,git rm ,git add 三个命令

分支管理

正常开发时不能使用master分支,会造成代码提交混乱

创建分支git branch

git branch 分之一

切换分支git checkout

git checkout 分之一
git branch -v (查看信息)

git branch -d (删除分支)

git checkout (切换分支) git checkout --文件名 撤销

git merge (代码合并)
git merge lianxi (在master上操作合并的是联系的分支) git branch --merge(查看哪些分支已经被合并过来了)
git branch --no-merge (查看没有被合并过来了分支)

Git远程管理

git clone 把远程的代码库拉到本地
git remote -v (查看远程库的地址和库的名字)
git push origin 分之一  (把本地的库推到远程仓库origin是库名分之一是分支名)
git fetch origin 分之一 (把远程的库的下载本地)

git tag (添加标签)
git tag -a v1.0 -m "描述"

git分布式版本管理系统的更多相关文章

  1. Git ——分布式版本控制系统

    Git ——分布式版本控制系统 本人git主页地址:https://github.com/lendoon/test.git git使用心得:初次接触git在课堂上,老师给我们提供了一个代码托管的场所, ...

  2. g4e基础篇#2 Git分布式版本控制系统的优势

    g4e 是 Git for Enterprise Developer的简写,这个系列文章会统一使用g4e作为标识,便于大家查看和搜索. 章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git ...

  3. GIT 分布式版本控制系统的简单使用介绍

    GIT 分布式版本控制系统的简单使用介绍 1.GIT的概念Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 与 SVN 区别:1. GIT不仅仅是个版本控制系统,它 ...

  4. Git分布式版本控制系统(下)

    Git分布式版本控制系统(下) 链接:https://pan.baidu.com/s/1CgaEv12cwfbs5RxcNpxdAg 提取码:fytm 复制这段内容后打开百度网盘手机App,操作更方便 ...

  5. GIT分布式版本控制系统

    Git诞生历史 我想大家还记得Linus torvalds在1991年时发布了Linux操作系统吧,从那以后Linux系统变不断发展壮大,因为Linux系统开源的特性,所以一直接受着来自全球Linux ...

  6. 手把手教你玩转Git分布式版本控制系统! (转载)

    目录 Git诞生历史 Git环境准备 Git安装部署 Git常用命令 Git基本操作 Git管理分支结构 Git管理标签 GitLab安装部署 GitHub托管服务 Git客户端工具 Git诞生历史 ...

  7. 手把手教你玩转Git分布式版本控制系统!

    目录 Git诞生历史 Git环境准备 Git安装部署 Git常用命令 Git基本操作 Git管理分支结构 Git管理标签 GitLab安装部署 GitHub托管服务 Git客户端工具 1 Git诞生历 ...

  8. 《Linux就该这么学》自学笔记_ch21_使用Git分布式版本控制系统

    <Linux就该这么学>自学笔记_ch21_使用Git分布式版本控制系统 文章主要内容: 分布式版本控制系统 使用Git服务程序 提交数据 移除数据 移动数据 历史记录 还原数据 管理标签 ...

  9. 开发效率优化之Git分布式版本控制系统(一)

    阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680本篇文章将先从Git分布式版本控制系统来阐述开发效率优化 一,企业 ...

随机推荐

  1. 第三章、Django之路由层

    目录 第三章.Django之路由层 一 路由的作用 二 简单的路由配置 三 分组 四 路由分发 五 反向解析 六 名称空间 七 django2.0版的re_path与path 第三章.Django之路 ...

  2. Hadoop_15_MapRduce_案例1_Wordcount 单词统计

    1.Wordcount示例编写: MapReduce采用”分而治之”的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各 个节点的中间结果,得到最终结果.简单地说 ...

  3. 解读Position

    首先Position在字面讲是位置的意思,在HTML中是定位的意思,它有四种属性:分别是static是静态的,也是默认的效果,没有特别的设定,遵循基本的定位规定,不能通过z-index进行层次分级. ...

  4. 用union 和 struct 位域操作

    很久没有用C 语言中的 union 和 struct 位域操作了. 最近用了一下(当然,我承认是从stackoverflow 上抄的) 需求是这样的,已知一个 LPARAM 整数 3866625 ,求 ...

  5. CSP-S2019 退役记/赛后总结

    真就退役了呗. 作为一名非常失败的OIer,开了一个非常失败的blog,一直想在赛后写点什么,做点什么,总结些什么.自csp结束以来,徘徊了半个月,今夜里终于还是起笔了. 因为从来没写过这种玩意,不妨 ...

  6. 一文学会redis从零到入门

    本文参照视屏学习整理:https://www.bilibili.com/video/av16841549/?p=9 相关软件.资料: 基本条件:有虚拟机或相关linux系统,熟悉基本linux操作 本 ...

  7. JS 中获取服务器时间的注意点

    在通过js获取服务器时间时,遇到了小小的问题,但造成的影响挺大的,所以写出来提醒大家,在获取服务器时间时一定要细心要多测试多验证. js 中使用以下方法获取服务器时间时要注意两点: 1.xhr.ope ...

  8. CSS测试题Ⅰ

    1.CSS 指的是? A.  Computer Style Sheets B.  Cascading Style Sheets C.  Creative Style Sheets D.  Colorf ...

  9. 019_linuxC++之_函数模板引入

    (一)首先我们来看非模板程序,函数只是输入不一样的变量就需要构件很多个不一样的函数,那么这样很麻烦,则引入函数模板 int& max(int& a, int& b) { ret ...

  10. Unable to copy file, Access to the path is denied

    Unable to copy file, Access to the path is denied http://stackoverflow.com/questions/7130136/unable- ...