GIT

简介

  • 什么是git
    git是一款开源的分布式版本控制工具
    在世界上所有的分布式版本控制工具中,git是最快、最简单、最流行的
  • git的起源
    作者是Linux之父:Linus Benedict Torvalds
    当初开发git仅仅是为了辅助Linux内核的开发(管理源代码)
  • git的现状
    在国外已经非常普及,国内并未普及(在慢慢普及)
    越来越多的开源项目已经转移到git

git和SVN的简单对比

速度
  • 在很多情况下,git的速度远远比SVN块
结构
  • SVN是集中式管理,git是分布式管理
其他
  • SVN使用分支比较笨拙,git可以轻松拥有无限个分支
  • SVN必须联网才能正常工作,git支持本地版本控制工作
  • 旧版本的SVN会在每一个目录置放一个.svn,git只会在根目录拥有一个.git
分布式和集中式的最大区别在于:在分布式下
  • 开发者可以本地提交
  • 每个开发者机器上都有一个服务器的数据库

使用git

跟SVN一样,你可以通过命令行敲指令或者图形界面客户端使用git
在Mac上,比较好用的git图形界面客户端有
  • SourceTree
    下载地址:http://www.sourcetreeapp.com/download/
  • GitHub
    下载地址:https:/mac.github.com
    不过它是专门为GitHub网站而设计的
  • Xcode

一、命令行的演示

1.初始化一个代码仓库
  • git init
2.如果使用GIT,必须给GIT配置用户名和邮箱
给当前的git仓库配置同户名和邮箱
  • git config user.name “LHT”
  • git config suer.email “2624910797@qq.com”
给git配置全局的用户名和邮箱
  • git config --global user,name “LHT”
  • git config --global suer.email “2624910797@qq.com”
3.初始化项目
  • touch main.m : 创建了main.m
  • git add main.m : 将main.m添加到暂缓区
  • git commit -m “初始化项目” : 将暂缓区的所有文件提交到本地版本库,清空暂缓区
    注意:添加的文件或者是修改的文件都要通过add命令,将该文件添加到暂缓区
  • git add . : 将工作区所有不在暂缓区的梭鱼内容添加到暂缓区
4.查看文件状态
  • git status

红色:该文件被添加或者被修改。但是没有添加到git的暂缓区
绿色:该文件在暂缓区,但是没有提交到本地版本库

5.给命令行起别名
  • git config alias.st “status”
  • git config alias.ci “commit -m”
  • git config --global alias.st “status”
6.删除文件
  • git rm person.m : 将person.m删除
7.查看版本信息
  • git log -> 版本号是由sha1算法生成的40位哈希值
  • git reflog : 可以查看所有版本回退的操作
8.版本回退
  • git reset --hard HEAD : 回到当前版本
  • git reset --hard HEAD^ : 回到上一个版本
  • git reset --hard HEAD^^ : 回到上上个版本
  • git reset --hard HEAD~100 : 回到前100个版本
  • git reset --hard 版本号(前5位)
9.给log起别名
  • git config --global alias.lg “log --color --graph --pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an> %Creset’ --abbrev-commit”

工作原理

如果想了解git的工作原理,有几个核心概念必须知道

工作区(Working Directory): 仓库文件夹里除.git目录以外的内容
版本库(Repository): .git目录,用于存储记录版本信息

  • 暂缓区(stage)
  • 分支(master):git自动创建的第一个分支
  • HEAD指针:用于指向当前分支
git add和git commit的原理
  • git add : 把文件修改或者新添加的文件添加到暂缓区
  • git commit : 把暂缓区的所有内容提交到当前分支

二、共享版本库

  • git服务器的搭建非常繁琐(linux)
  • 可以吧代码托管到(Github/OSChina)
  • 一个文件夹
  • 一个U盘
1.一个文件夹作为共享版本库
  • git init --bare
2.将共享版本库的所有内容下载到本地
  • git clone 共享版本库地址
3.删除忽略文件
  • touch .gitignore -> Github -> 搜索".gitignore" -> 选择*最多的 -> 找到Object-C,复制下来
4.版本回退
  • git reset --hard HEAD^:回到上一个版本(张三)
  • git push -f : 强制上传到共享版本库
  • giT RESET --HARD HEAD^ : 回到上一个版本(经理)
5.从共享版本库更新代码
  • git pull
6.将代码上传到共享版本库
  • git push origin weibo1.0 (一般都是在Xcode中Source Control中commit后直接push)

三、版本备份

    1. 1.0版本开发完毕,将1.0版本上传到AppStore,对1.0版本进行备份(打上标签)

git tag -a weibo1.0 -m “这是1.0版本”
git tag : 查看当前tag

    1. 需要将标签push到共享版本库

git push origin weibo1.0

    1. 开始2.0版本的开发
    1. 发现1.0版本由bug,在经理的文件夹下面创建一个文件夹,用于修复bug,将共享版本库所有内容clone

git clone

    1. 将当前的代码转为1.0标签,创建分支,并切换到该分支

git checkout weibo1.0 : 转化为1.0标签
git checkout -b weibo1.1fixbug : 创建分支,并且切换到该分支

    1. 在分支中修复bug,上传到APPStore,将修复好的版本,打上tag,并上传到共享版本库

git tag -a weibo1.1 -m “这个是修复了1.0bug的1.1版本”
git push origin weibo1.1

    1. 跟当前正在开发的2.0版本进行合并

source Control -> pull -> weibo1.1fixbug

    1. 删除分支

git branch : 查看当前在哪个分支
git branch -r : 查看本地版本库的分支
git branch -d weibo1.1fixbug : 删除本地分支
git branch -r -d origin/weibo1.1fixbug : 删除本地版本库分支
git push origin --delete weibo1.1fixbug

SSHkeys 认证

1.共钥:存在github上用来加密
2.私钥:存在本地的一个.ssh文件夹下用来加密

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iOS开发疯狂者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值