Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction To Git Github Gitlab

Introduction To Git Github Gitlab

公司内部技术分享

Charlie Jade

August 10, 2013
Tweet

More Decks by Charlie Jade

Other Decks in Programming

Transcript

  1. ⼤大纲 什么是 git ? 什么是 github ? 什么是 gitlab ?

    Demo Time! Git 常用的⼯工作流程 总结, 扩展阅读. Tuesday, December 10, 13
  2. 什么是 git ? Git is a free and open source

    distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git是⼀一个免费并且开源的分布式版本控制系 统,用以有效、⾼高速的处理从很小到非常⼤大的 项目版本管理。 Tuesday, December 10, 13
  3. Git 的故事 Git 是 Linus Torvalds 在开发 Linux 内核时的产物; Linux

    内核维护在于提交补丁和 保存归档上(1991-2002年 间)。 2002 年,项目组开始用分布式 版本控制系统 BitKeeper 来管理 和维护代码。 2005 年,开发 BitKeeper 的商 业公司同 Linux 内核开源社区 的合作关系结束,他们收回了免 费使用 BitKeeper 的权⼒力。 同年, Linus 编写了 Git , 并用于 Linux 内核开发中。 Tuesday, December 10, 13
  4. 集中化的版本控制系统 右图是 集中化的版本控制系统 ( Centralized Version Control Systems,简称 CVCS ),

    CVS, Subversion 以及 Perforce 等,都有 ⼀一个单⼀一的集中管理的服务器. 保存所有⽂文件的修订版本,⽽而协同 ⼯工作的⼈人们都通过客户端连到这台 服务器,取出最新的⽂文件或者提交 更新。 What Makes Git Different Tuesday, December 10, 13
  5. What Makes Git Different 分布式版本控制系统 分布式版本控制系统( Distributed Version Control System,简称

    DVCS ), 在这类系统中,像 Git, Mercurial,Bazaar 以及 Darcs 等. 客户端并不只提取最新版本的⽂文件 快照,⽽而是把代码仓库完整地镜像 下来。 任何⼀一处协同⼯工作用的服务器发⽣生 故障,事后都可以用任何⼀一个镜像 出来的本地仓库恢复。每⼀一次的提 取操作,实际上都是⼀一次对代码仓 库的完整备份 Tuesday, December 10, 13
  6. 什么是 Github ? GitHub 是⼀一个基于Git版本控制系统的 代码托管⽹网。 社交编程, 程序员的 Facebook, 程序员

    用代码来 Communicate 。 它由GitHub公司的开发者Chris Wanstrath、PJ Hyett和Tom Preston- Werner使用Ruby on Rails编写⽽而成。 成立于 2008年2月 Tuesday, December 10, 13
  7. Github 的数据 3 百万用户 http:/ /t.cn/zjDPLth 5 百万代码仓库. 2012 获得

    VC ⼀一亿美元的融资 全球最⼤大的代码托管商 Tuesday, December 10, 13
  8. Demo Time 命令⾏行上的 Git Github 集智编程的实现 - Pull Request Gitlab

    以代码为核⼼心的项目管理系统的基本使 用 客户端的介绍 Tuesday, December 10, 13
  9. 命令⾏行上的 Git 项目实战: 构架⼀一个 Blog 初始化项目 基本操作, git status, git

    log, git commit 使用分支 (branch) 开发新功能 增加 page 功能 feature/add_page 增加 user 功能 feature/add_user merge 分支 add_page 处理冲突 推送到 Github 上, 并进⼊入下⼀一个 demo Tuesday, December 10, 13
  10. Github 集智编程的实现 Pull Request 访问 https:/ /github.com , 介绍下 Github

    上有名的项目; 把上个 demo 中创建的项目 blog 导⼊入 Github 上; fork 项目 修改⼏几个⽂文件 创建⼀一个 Pull Request 审核 Pull Request 并互动 接受 Pull Request Github Flow! Tuesday, December 10, 13
  11. Gitlab 的基本使用 管理员后台 从 Github 上导⼊入 blog 项目; Gitlab 的

    Merge Request (和 Github 的 Pull Request 是⼀一样的) API 接⼝口 权限管理 Web hooks - 每⼀一次提交代码的时候触发 Tuesday, December 10, 13
  12. Git 客户端 Win 下的 tortoisegit , 支持右键集成 https:/ / code.google.com/p/tortoisegit/

    Source Tree , Mac 和 Win 平台都支持, 并且支 持 Gitflow (做个 Demo ) Tower 只支持 Mac , 面前 ⽆无线开发在用. Tuesday, December 10, 13
  13. Git 常用的⼯工作流程 Github Flow ( Pull Request & Gitlab 的merge

    request ) Git Flow (使用 source tree 做 DEMO) Tuesday, December 10, 13
  14. 总结 Closing UP Master 为⽣生产环境的代码, master 分支是非常特别的, 它必须是可以部署的分支,也就是通常意义上的 production, 在

    gitlab 后台表现为 protect branch; 所有的修改, BUG + Feature , 都需要创建 branch, 千万 不要在 master 上直接修改, 必须有命名规范, 如: projectid_type_desc 所有的修改都通过使用 merge request 来实现, ⽅方便记 录; 提交 merge request 之前, 要更新代码, 处理好 conflict 后再提交; 可以加上 Staging 的分支, 做上线前的测试; Tuesday, December 10, 13
  15. 扩展阅读. Git 官⽹网 http:/ /git-scm.com/ Pro Git 想知道关于所有 Git 的知识,

    都在这 http:/ /git-scm.com/book/ zh 实用 Git ⼯工作流 http:/ /yedingding.com/2013/09/11/practical-git-flow- for-startups.html GitHub Flow 的介绍(英⽂文, 此作者是 git pro 和 git-scm.com 的作者) http:/ /scottchacon.com/2011/08/31/github-flow.html Git Flow 备忘清单 http:/ /danielkummer.github.io/git-flow- cheatsheet/index.zh_CN.html Git 命令 https:/ /github.com/AlexZeitler/gitcheatsheet Tuesday, December 10, 13