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

Introduction To Git Github Gitlab

Introduction To Git Github Gitlab

公司内部技术分享

Avatar for Charlie Jade

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