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
  • 相关阅读:
    1219 总结
    1206 冲刺三
    1130 冲刺2
    1128 主页面
    1123 冲刺3
    1121 冲刺2
    1118 冲刺1
    1117 新冲刺
    0622 软件工程总结
    0617 实验四 主存空间的分配和回收
  • 原文地址:https://www.cnblogs.com/yanshicheng/p/10726801.html
Copyright © 2011-2022 走看看