zoukankan      html  css  js  c++  java
  • git分布式版本管理系统

    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.4
    编译安装
    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@163.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 "描述"

  • 相关阅读:
    android数据恢复
    UVA 690 Pipeline Scheduling
    2017 国庆湖南 Day4
    2017 国庆湖南 Day5
    2017 国庆湖南 Day6
    2017国庆 清北学堂 北京综合强化班 Day1
    2017 国庆湖南Day2
    bzoj 2962 序列操作
    UVA 818 Cutting Chains
    UVA 211 The Domino Effect
  • 原文地址:https://www.cnblogs.com/ywrj/p/9575052.html
Copyright © 2011-2022 走看看