zoukankan      html  css  js  c++  java
  • Git 管理篇章

    Git 介绍
    Git

    • 开源免费的分布式版本控制系统(DVCS)
    • 最新版本2.1.3(截止2014/11/04) download here

    Git的主要特点

    • 支持离线工作,多点同步
    • 速度快
    • 使用40位哈希值标示版本号
    • 本地库、缓冲区、中心库三层结构
    • 轻量级的分支和标签
    • 主要基于命令行,难上手
    • 占用空间大

    Git术语

    本地库、缓冲区、中心库

    • 本地库:中心库的完整镜像(.git目录)
    • 缓冲区:用于存放和整理待提交改动的空间,支持选择性提交(.git/index)
    • 中心库:代码托管服务器管理下的git库
    • commit-id
      • 40位的哈希值,全球唯一的标示一次提交的完整镜像,相当于一个快照
      • 如:b40046cf6704caa21aff88873276a1321c6e5c1c,实际取开头7-8位就OK
    • HEAD
      • 指代当前checkout状态的commit,后续commit都基于它完成,类似链表
    • refs
      • 分支管理的命名空间,如:refs/heads/*, refs/for/refs/heads/*, refs/tags/*

    Gti常用命令

    • Help:查看帮助
    • Clone:克隆服务器上的代码库到本地
      • git clone url:tools/repo.git 服务器project路径可通过web查询
    • Add:添加文件到缓冲区,待提交状态
      • 所有新增修改文件;-u 所有修改删除文件; -A 所有新增修改删除文件
    • Commit:本地提交
      • -m 编辑注释; -s 添加用户签名信息; --amend 修改上次提交
    • Status:查看本地库状态
      • 可以看到当前所在分支,文件新增修改状态等各种信息,有事没事status一下是个好习惯
    • Branch:查看、建立、删除分支
      • git branch :查看本地分支,-r 远程分支,-a 所有分支
      • git branch 新分支名基准分支/标签/commit :新建一条本地分支
      • git branch –D 分支名:删除本地分支
    • Checkout:检出分支
      • git checkout 分支名:检出到指定分支
      • git checkout -b 新分支名老分支名:新建并检出分支
    • Log:查看修改log
      • --oneline:单行显示;-数字:显示最近几条记录;
      • -- 文件名:查看指定文件的修改记录;
      • -p 显示代码变动;--stat:显示文件变动概要(文件名,修改行数等)
    • Diff:查看详细修改内容
      • -- 文件名:查看指定文件的修改记录;

    Git进阶命令- 远程协作

    • Fetch和Pull:获取服务器更新
      • Fetch可以把服务器上的全部更新存在本地库中,不会影响当前目录中的代码;
      • Pull命令不仅包含fetch的功能,同时会将修改合入当前目录;
      • git pull –rebase:采用rebase方式将更新合入本地代码(推荐)
    • Push:将本地改动推送入库
      • git push origin本地分支名:refs/for/远程分支名
    • Reset和Revert:两种回退方式
      • 原则:Gerrit merge之前用reset,merge之后用revert
      • git reset commit-id --hard :回退到指定commit,不留任何痕迹
      • git revert commit-id -s :回退一次提交,并自动生成一个相反的patch,需审核入库
      • 才能生效,类似gerrit上的revert按钮功能

    Git进阶命令- 清理合并

    • Clean和Checkout:清理本地工作目录
      • git clean -fd :删除所有未跟踪的文件和目录,清理临时文件利器
      • git checkout -- 文件名:把一个文件回退到原始未修改的状态
    • Cherry-pick:单个/批量合入修改
      • git cherry-pick -s -x sha1:拣选指定提交并合入当前分支
      • -s:添加用户签名信息
      • -x:添加原始commit sha1信息,用于追溯
    • Format-patch和apply(am):补丁生成和应用
      • git format-path commit-id^..commit-id : 自动生成patch,如0001-Add-LeTV_X60_20130901_030001.xml.patch
      • git apply patch-name :应用patch
      • git format-patch + git apply = 离线版cherry-pick
      • git am patch-name:另一种打patch的方式,可以自动复用commit message
  • 相关阅读:
    Constants and Variables
    随想
    C#基础篇之语言和框架介绍
    Python基础19 实例方法 类方法 静态方法 私有变量 私有方法 属性
    Python基础18 实例变量 类变量 构造方法
    Python基础17 嵌套函数 函数类型和Lambda表达式 三大基础函数 filter() map() reduce()
    Python基础16 函数返回值 作用区域 生成器
    Python基础11 List插入,删除,替换和其他常用方法 insert() remove() pop() reverse() copy() clear() index() count()
    Python基础15 函数的定义 使用关键字参数调用 参数默认值 可变参数
    Python基础14 字典的创建修改访问和遍历 popitem() keys() values() items()
  • 原文地址:https://www.cnblogs.com/yanshicheng/p/10726801.html
Copyright © 2011-2022 走看看