Git介绍

474 views
262 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
474
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Git介绍

  1. 1. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Git 基本介绍 佟冀实 September 21, 2013
  2. 2. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Table of contents 目的 什么是 Git 与 SVN 的比较 常用操作 Git 的工作流 项目中的配置文件 Git Ignore Github / Gist Gui Clients 其它技巧 & 高级功能 参考资料 Q & A
  3. 3. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 目的 本次分享想达到的目的: ▶ 交流心得 ▶ 不熟悉 Git 的同学对 Git 产生兴趣和尝试使用 Git
  4. 4. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 什么是 Git ▶ Git /git/ 是一个分布式版本控制/软件配置管理软件, 原來 是 Linux 内核開發者林纳斯· 托瓦兹 (Linus Torvalds) 为了 更好地管理 Linux 内核开发而创立的。需要注意的是和 GNU Interacive Tools, 一个类似 Norton Commander 界面的 文件管理器有所不同。 ▶ 谁在使用 Git:
  5. 5. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 与 SVN 的比较1 1 GIT 和 SVN 之间的五个基本区别
  6. 6. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 与 SVN 的比较1 ▶ 分布式存储, 多仓库支持 1 GIT 和 SVN 之间的五个基本区别
  7. 7. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 与 SVN 的比较1 ▶ 分布式存储, 多仓库支持 ▶ 离线提交 1 GIT 和 SVN 之间的五个基本区别
  8. 8. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 与 SVN 的比较1 ▶ 分布式存储, 多仓库支持 ▶ 离线提交 ▶ 分支与 tag 1 GIT 和 SVN 之间的五个基本区别
  9. 9. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 与 SVN 的比较1 ▶ 分布式存储, 多仓库支持 ▶ 离线提交 ▶ 分支与 tag ▶ 速度更快 1 GIT 和 SVN 之间的五个基本区别
  10. 10. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 与 SVN 的比较1 ▶ 分布式存储, 多仓库支持 ▶ 离线提交 ▶ 分支与 tag ▶ 速度更快 ▶ 更出色的合并追踪 (merge tracing) 能力 1 GIT 和 SVN 之间的五个基本区别
  11. 11. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 与 SVN 的比较1 ▶ 分布式存储, 多仓库支持 ▶ 离线提交 ▶ 分支与 tag ▶ 速度更快 ▶ 更出色的合并追踪 (merge tracing) 能力 1 GIT 和 SVN 之间的五个基本区别
  12. 12. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 常用操作 2 Git – When to Merge vs. When to Rebase 3 What’s the difference between Git Revert, Checkout and Reset?
  13. 13. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 常用操作 ▶ Checkout 代码 2 Git – When to Merge vs. When to Rebase 3 What’s the difference between Git Revert, Checkout and Reset?
  14. 14. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 常用操作 ▶ Checkout 代码 ▶ 更新代码 2 Git – When to Merge vs. When to Rebase 3 What’s the difference between Git Revert, Checkout and Reset?
  15. 15. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 常用操作 ▶ Checkout 代码 ▶ 更新代码 ▶ 提交代码 2 Git – When to Merge vs. When to Rebase 3 What’s the difference between Git Revert, Checkout and Reset?
  16. 16. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 常用操作 ▶ Checkout 代码 ▶ 更新代码 ▶ 提交代码 ▶ 比较代码 2 Git – When to Merge vs. When to Rebase 3 What’s the difference between Git Revert, Checkout and Reset?
  17. 17. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 常用操作 ▶ Checkout 代码 ▶ 更新代码 ▶ 提交代码 ▶ 比较代码 ▶ 创建分支 2 Git – When to Merge vs. When to Rebase 3 What’s the difference between Git Revert, Checkout and Reset?
  18. 18. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 常用操作 ▶ Checkout 代码 ▶ 更新代码 ▶ 提交代码 ▶ 比较代码 ▶ 创建分支 ▶ 合并分支 / 不同仓库间的代码合并 ▶ merge2 合并到主分支时使用 –no-ff ▶ rebase - git pull –rebase 2 Git – When to Merge vs. When to Rebase 3 What’s the difference between Git Revert, Checkout and Reset?
  19. 19. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 常用操作 ▶ Checkout 代码 ▶ 更新代码 ▶ 提交代码 ▶ 比较代码 ▶ 创建分支 ▶ 合并分支 / 不同仓库间的代码合并 ▶ merge2 合并到主分支时使用 –no-ff ▶ rebase - git pull –rebase 注意:不能在已经推到仓库中的代码,或从仓库中取下的代 码分支上使用 rebase 2 Git – When to Merge vs. When to Rebase 3 What’s the difference between Git Revert, Checkout and Reset?
  20. 20. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 常用操作 ▶ Checkout 代码 ▶ 更新代码 ▶ 提交代码 ▶ 比较代码 ▶ 创建分支 ▶ 合并分支 / 不同仓库间的代码合并 ▶ merge2 合并到主分支时使用 –no-ff ▶ rebase - git pull –rebase 注意:不能在已经推到仓库中的代码,或从仓库中取下的代 码分支上使用 rebase ▶ hotfix: cherry-pick 2 Git – When to Merge vs. When to Rebase 3 What’s the difference between Git Revert, Checkout and Reset?
  21. 21. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 常用操作 ▶ Checkout 代码 ▶ 更新代码 ▶ 提交代码 ▶ 比较代码 ▶ 创建分支 ▶ 合并分支 / 不同仓库间的代码合并 ▶ merge2 合并到主分支时使用 –no-ff ▶ rebase - git pull –rebase 注意:不能在已经推到仓库中的代码,或从仓库中取下的代 码分支上使用 rebase ▶ hotfix: cherry-pick ▶ 代码回滚3 ▶ checkout 2 Git – When to Merge vs. When to Rebase 3 What’s the difference between Git Revert, Checkout and Reset?
  22. 22. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 常用操作 ▶ Checkout 代码 ▶ 更新代码 ▶ 提交代码 ▶ 比较代码 ▶ 创建分支 ▶ 合并分支 / 不同仓库间的代码合并 ▶ merge2 合并到主分支时使用 –no-ff ▶ rebase - git pull –rebase 注意:不能在已经推到仓库中的代码,或从仓库中取下的代 码分支上使用 rebase ▶ hotfix: cherry-pick ▶ 代码回滚3 ▶ checkout ▶ reset 2 Git – When to Merge vs. When to Rebase 3 What’s the difference between Git Revert, Checkout and Reset?
  23. 23. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 常用操作 ▶ Checkout 代码 ▶ 更新代码 ▶ 提交代码 ▶ 比较代码 ▶ 创建分支 ▶ 合并分支 / 不同仓库间的代码合并 ▶ merge2 合并到主分支时使用 –no-ff ▶ rebase - git pull –rebase 注意:不能在已经推到仓库中的代码,或从仓库中取下的代 码分支上使用 rebase ▶ hotfix: cherry-pick ▶ 代码回滚3 ▶ checkout ▶ reset ▶ revert 2 Git – When to Merge vs. When to Rebase 3 What’s the difference between Git Revert, Checkout and Reset?
  24. 24. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 常用操作 ▶ Checkout 代码 ▶ 更新代码 ▶ 提交代码 ▶ 比较代码 ▶ 创建分支 ▶ 合并分支 / 不同仓库间的代码合并 ▶ merge2 合并到主分支时使用 –no-ff ▶ rebase - git pull –rebase 注意:不能在已经推到仓库中的代码,或从仓库中取下的代 码分支上使用 rebase ▶ hotfix: cherry-pick ▶ 代码回滚3 ▶ checkout ▶ reset ▶ revert 2 Git – When to Merge vs. When to Rebase 3 What’s the difference between Git Revert, Checkout and Reset?
  25. 25. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Git 的工作流 ▶ Git 分布式工作流程 ▶ 开发 / QA / 生产 / stage 环境隔离
  26. 26. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 项目中的配置文件 ▶ 只放配置模板文件, 不要做修改和提交
  27. 27. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Git Ignore ▶ 排除掉不需要提交的内容 ▶ Logs ▶ DB ▶ /runtime/ ▶ netbeans/eclipse 工程配置文件 ▶ etc.
  28. 28. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Github / Gist
  29. 29. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Github / Gist ▶ 全球最大的社交编程及代码托管网站 ▶ 代码分享和交流
  30. 30. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Github / Gist ▶ 全球最大的社交编程及代码托管网站 ▶ 代码分享和交流 ▶ 曾经被墙反应强烈,3 天左右解封
  31. 31. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Github / Gist ▶ 全球最大的社交编程及代码托管网站 ▶ 代码分享和交流 ▶ 曾经被墙反应强烈,3 天左右解封 ▶ 上周末起部分地区再次被墙至今
  32. 32. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Github / Gist ▶ 全球最大的社交编程及代码托管网站 ▶ 代码分享和交流 ▶ 曾经被墙反应强烈,3 天左右解封 ▶ 上周末起部分地区再次被墙至今 ▶ socks5 代理 ▶ 1.8 版本以上,git config –global http.proxy ’socks5://127.0.0.1:7070’
  33. 33. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Github / Gist ▶ 全球最大的社交编程及代码托管网站 ▶ 代码分享和交流 ▶ 曾经被墙反应强烈,3 天左右解封 ▶ 上周末起部分地区再次被墙至今 ▶ socks5 代理 ▶ 1.8 版本以上,git config –global http.proxy ’socks5://127.0.0.1:7070’ ▶ 1.8 版本以下:proxychains
  34. 34. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Github / Gist ▶ 全球最大的社交编程及代码托管网站 ▶ 代码分享和交流 ▶ 曾经被墙反应强烈,3 天左右解封 ▶ 上周末起部分地区再次被墙至今 ▶ socks5 代理 ▶ 1.8 版本以上,git config –global http.proxy ’socks5://127.0.0.1:7070’ ▶ 1.8 版本以下:proxychains ▶ GitLab
  35. 35. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Github / Gist ▶ 全球最大的社交编程及代码托管网站 ▶ 代码分享和交流 ▶ 曾经被墙反应强烈,3 天左右解封 ▶ 上周末起部分地区再次被墙至今 ▶ socks5 代理 ▶ 1.8 版本以上,git config –global http.proxy ’socks5://127.0.0.1:7070’ ▶ 1.8 版本以下:proxychains ▶ GitLab ▶ 开源中国,支持免费私有库:http://git.oschina.net/
  36. 36. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Gui Clients ▶ http://git-scm.com/downloads/guis
  37. 37. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 其它技巧 高级功能 ▶ 自动补全 ▶ 打 patch 包 ▶ git svn ▶ etc.
  38. 38. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 参考资料 ▶ 书籍 ▶ 使用篇:Pro Git ▶ 原理篇:Version Control with Git
  39. 39. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . 参考资料 ▶ 书籍 ▶ 使用篇:Pro Git ▶ 原理篇:Version Control with Git ▶ 链接 ▶ Git 常用命令备忘 ▶ 理解 Git 工作流 ▶ Git Community Book 中文版 ▶ Google
  40. 40. ..... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . .... . .... . ..... . .... . ..... . .... . .... . Q A Thanks!

×