Git 使用介绍

  • 1,306 views
Uploaded on

Git 内部培训

Git 内部培训

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,306
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
30
Comments
0
Likes
4

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Git 使用介绍 Medcl
  • 2. 有时候• Svn连接不上• Svn服务器挂了 – 代码没法提交,那边编译不过! – 没法恢复到之前版本! – 分支切换成本太高! – 在家网速不行签出代码老半天 Svn已死,提高效率,改用GIT
  • 3. Git下的开发场景• 1.连不上公司网络怎么办? – 吭哧吭哧, – 完成各种功能, – feature代码照样提交 – 回到公司或者网络恢复,提交• 2.产品已经上线了,需要开发一个新的功能,花费时间较长,又不能影响其 他人 – 新起一个分支 – 吭哧吭哧 – 完成各种功能 – 调试通过 – 提交合并到master主干版本• 3.重构 – 小范围代码分支签出 – 重构完毕 – 合并到主干
  • 4. 什么是Git?• 最早由linus torwalds用来管理linux 内核开发• SCM• 开源(GNU GPL V2)• 速度快• 分布式 – 离线也能继续开发• 非线性开发
  • 5. 集中式开发
  • 6. 分布式开发
  • 7. 与SVN相比Git Svn分布式管理 集中式管理速度快 速度慢控制命令多 有成熟的管理工具擅长分支管理 不擅长分支管理处理文件冲突很好 处理文件冲突很差
  • 8. Git安装• Windows – Msysgit • http://msysgit.github.com/ – cygwin+git+openssh – Tortoisegit• Centos – yum install git• Ubuntu – apt-get install git• Mac – Tower
  • 9. Git command
  • 10. TortoiseGit• http://code.google.com/p/tortoisegit/wiki/Scr eenshots
  • 11. LET’S GIT
  • 12. 使用流程• 【客户端】• 生成pub文件,提供给管理员• 【服务端】• 管理员添加相关权限信息(新建repo)• 【客户端】• 2.配置git的基本信息 – Name – E-mail• 3.本地git clone• 4.开发• 5.提交• 6. PUSH
  • 13. 生成密钥对• $ ssh-keygen• Generating public/private rsa key pair.• Enter file in which to save the key (/c/Users/Medcl/.ssh/id_rsa): Git服务器通过这些信息 来识别你的身份• $ ls• id_rsa id_rsa.pub known_hosts
  • 14. 基本设置 你的信息,方便识别代码所有者• git config --global user.name “medcl”• git config --global user.email “m@medcl.net”
  • 15. 创建一个Repository• Repository(代码仓库) 在本地新建仓库,就可以开• 1.本地新建一个代码仓库 始使用git的所有功能 – cd project – git init . – git add . – git commit –m “initial commit”• 2.知道远程repo地址,复制一份repo副本到本地 – git clone git://github.com/medcl/medcl.github.com.git 协同开发同一个项目的时候
  • 16. 文件管理• git会管理空文件,但不会理会空目录• git commit –a – 自动添加未更新索引的文件 – 未添加到git的文件不会自动处理• 改名 – git mv• 删档 – git rm
  • 17. 添加文件• 自动添加目录及子目录下文件 – git add .• 添加指定文件到git仓库中 – git add <文件名>• 其它(查看帮助:git help add) – git add git-*.sh – git add Documentation/*.txt
  • 18. 添加文件
  • 19. 文件状态生命周期
  • 20. Git Status• 查看本地git仓库的状态信息 git status git status c.txt
  • 21. .gitignore• 告诉git那些文件不需要管 – 即使git add 也不会添加这些文件• .gitignore文件内容例子: /data /work /logs /.idea /target /out 确保只提交给源代码到repo! .DS_Store *.iml 各种编译输出,中间文件,一定不要提交上去
  • 22. 提交变更
  • 23. 历史记录• git log
  • 24. 历史记录• git show HEAD• git help show• gitk –all• git log --graph
  • 25. 谁动了我的文件?• 查看文件里面每一行的作者和版本信息• git blame <文件名>
  • 26. 撤销回退• git checkout [HEAD] 档名• git checkout master• git reset HEAD 档名 – git reset SHA1:回退到指定版本 – git reset HEAD~1:回退到上一个版本 – 变回unstaged 或者 untracked;不变更内容
  • 27. 分支• 为什么要使用分支? – 重构(refactor) – 开发新功能 – 修复bug• git鼓励多分支操作• 每次修改都应该在分支上进行• 只有调试通过了,才应该merge回主分支
  • 28. 分支操作• git branch• master:默认的分支名称• git checkout –b newidea :建立分支并且切换• git branch• git checkout newidea 签出分支(切换到分支下)• git branch 查看当前分支• git merge newidea 合并分支• git branch –D newidea 删除分支 – 只能删除非工作分支• git format-patch origin/master 可在当前目录下生成补丁• git checkout master• git aply xxx.patch
  • 29. 分支操作• touch newfile• git commit –a –m “new feature:xxx”• git checkout master• git merge newidea – 如果没有冲突,会自动合并• git branch• 合并分支:git merge <source branch>• 目标分支为当前分支
  • 30. web界面• git instaweb --httpd=webrick• http://localhost:1234/ Ruby Required!
  • 31. 参考资源• http://github.com• http://progit.org• http://git-scm.com• https://git.wiki.kernel.org/index.php/Gitweb• http://www.gitalist.com/install/• http://gitstack.com• http://sitaramc.github.com/gitolite/sts.html#ssh-ha