Git

教程

推荐软件

SourceTree

Git与SVN

SVN Git
集中式 分布式
  • 集中式与分布式
    • 网络
      • 集中式版本控制:中心所有事件都需要访问中央服务器
      • 分布式版本控制:在离线状态下可以看到所有的Log
    • 安全性
      • 集中式版本控制:中央服务器崩溃所有人无法提交代码
      • 分布式版本控制:提交本地版本库,分布式中任何两个主机都可以当做“中央服务器”
    • 分支
      • 集中式版本控制:复制一份代码和日志记录
      • 分布式版本控制:获取文件的每个版本的元素,然后只载入主要的分支(master
    • 本地分支
      • 集中式版本控制:无法创建
      • 分布式版本控制:方便创建本地分支,本地代码

概念

  • 工作区
    • 你当前的文件夹目录
  • 版本库
    • 工作区有一个隐藏目录.git,记录着版本信息
  • 暂存区
    • 版本库中的stage,记录着当前修改且暂未提交本地版本库的代码

常用规范

  • 主分支
    • 负责发包,一般不直接提交代码到该分支
  • 开发分支
    • 负责开发流程
  • 定时提交自己模块的代码
  • 提交代码写备注

工作流程

参考 http://www.ruanyifeng.com/blog/2015/12/git-workflow.html

  • Git flow
  • Github flow
  • Gitlab flow

Git flow

  • 创建或者获取git
  • 提交代码
    • 暂存自己代码
    • 写备注、提交到本地版本库
    • 拉取“中央服务器”的版本
    • 解决冲突(如果有冲突)
    • 提交到“中央服务器”(如果想提交到主分支)
  • 切换分支
    • 检出
    • 双击
  • 分支操作
    • 创建分支
      • 点击分支,选择版本,创建分支
    • 合并分支

疑问

获取与拉取的区别
http://www.yiibai.com/git/git_fetch.html

生成公钥和私钥
http://blog.csdn.net/hustpzb/article/details/8230454/