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
作者:闫世成
出处:http://cnblogs.com/yanshicheng
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题或建议,请联系上述邮箱,非常感谢。