码迷,mamicode.com
首页 > 其他好文 > 详细

git使用

时间:2016-05-06 15:40:33      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:

前言:
1.文中的”$”不纳入命令行中,只做标记用
2.文中会介绍常用的命令行操作方式和xcode界面化操作方式介绍git
3.以下均个人理解整理,如果有错还请指出


git工作原理

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

    • 暂缓区(stage):也叫暂存区
    • 分支(master):.git自动创建的第一个分支
    • HEAD指针:用于指向当前分支
  • git add和git commit原理

    • git add:把文件修改或者新添加文件添加到暂缓区(暂存区)
    • git commit:把暂缓区(暂存区)中的所有内容提交到当前分支

技术分享


什么是分支?

  • git可以创建无数个分支,且在创建一个git仓库的的同时会自动创建第一个分支
  • 分支的作用:举个例子 —> 一个已经上架的项目,发现有重要Bug,为了不影响主分支的开发进度,一般会开个分支出来专门修复Bug用,等到Bug修复后,再与主分支进行合并操作

HEAD头指针运作原理

  • HEAD指针就是为了在各个分支间进行切换,我们开发哪个分支,它就会指向哪个分支

技术分享


git初始化和访问配置(命令行方式)

  • 初始化一个本地版本库
    • $ git init
  • 设置用户名和邮箱
    • $ git config user.name “用户名”
    • $ git config user.email “xxxxxx@qq.com”
  • 设置全局用户名和邮箱(优先级较高,如果同时设置,优先使用全局)

    • $ git config –global user.name “用户名”
    • $ git config –global user.email “xxxxxx@qq.com”
  • git仓库项目初始化操作

    • 在git工作区(同级目录和同级目录的子目录)中创建一个文件 main.m
      • $ touch main.m
    • 查看文件状态(查看文件是否被管理)
      • $ git status
        说明:
        1.如果文件的颜色为红色,说明该文件并没有被添加到git的暂缓区中
        2.如果文件颜色为绿色,说明该文件已经被添加到git的暂缓区中
    • 添加文件到暂缓区中,查看文件状态
      • $ git add main.m
    • 提交到本地版本库中
      • $ git commit -m “创建了main.m文件” main.m
        说明:
        1.可以直接在后面跟上文件,表示把该文件提交到本地版本库(暂缓区–>版本库)
        2.不跟任何文件名称,表示把当前所有暂缓区中的内容都提交到版本库中
    • 修改文件,重新提交更改到本地版本库(git中如果修改了文件,需要重新将文件添加到暂缓区中才能提交)
      • $ git add main.m
      • $ git commit -m “修改了main文件” main.m
        注意:在git中和svn不一样的地方在于 —— 不管是创建文件还是修改文件都需要添加到暂缓区中然后再提交

git好用的功能 —— 起别名

  • 我们来给status起别名 st
    • 基本方式:(只能在当前文件夹内的git工作区内使用)
      • $ git config alias.st “status”
      • 这样以后要查询文件状态就可以直接使用 $ git st 就可以了
    • 高级方式:(只能在当前文件夹内的git工作区内使用)
      • gitcommit?m""??> git config alias.ci “git commit -m”
      • 这样以后要提交文件就可以直接使用$ git ci “注释”
    • 全局别名:(设置一次,电脑中所有的地方都可以使用)
      • $ git config –global alias.st “status”

git删除文件

  • 先创建一个新的文件
    • $ touch test.m
  • 将文件提交到暂缓区中
    • $ git add test.m
  • 提交删除操作到本地版本库
    • $ git commit -m “删除了test.m”文件
  • 删除test.m文件
    • $ git rm test.m

查看git版本信息

  • 查看git历史版本信息
    • 基础方式:
      • $ git log
    • 高级方式:(可查看版本回退操作)
      • $ git reflog
  • 因为git是分布式版本控制,有多个git本地版本库,为了使版本号之间不互相冲突,所以git版本号是通过SHA1加密得到的密文。

技术分享


版本回退操作

  • 情况一:修改了本地版本库文件,但还未提交
    • $ git reset –hard HEAD
  • 情况二:修改了本地版本库文件,且已经提交

    • 回退到上一个版本

      方法一: $ git reset –hard HEAD^ // 一个“^”号表示一个版本

      方法二: $ git reset –hard HEAD~1 // ~号后面表示回退几个版本(如10就是回退10个版本)

    • 回退到指定版本
      • $ git reflog // 查看回退版本信息
      • $ git reset –hard 版本号(5位)

创建共享版本库并初始化项目

  • 创建共享版本库方式
    • 自己搭建服务器,自己在服务器上配置(复杂)
    • 在U旁上创建共享版本库
    • 把共享版本库创建到文件夹中
    • 托管到github、oschina网站
  • 创建共享版本库步骤
    • 初始化一个空的git共享版本库(和本地版本库不同的是,共享版本库不会生成.git文件夹)
      • $ git init –bare
        注:怎么查看使用的版本库是共享版本库还是本地版本库,我们可以打开git 中的config配置文件查看里面的“bare”字段,如果现实为true表示为共享版本库,反之不是。
    • 管理者连接仓库并下载仓库到本地
      • $ git clone 共享版本库路径
    • 初识化项目
      • 在初始化项目前,我们需要先忽略一些不必要的文件
        • 创建一个忽略文件.gitignore夹
          • $ cd git工作区路径
          • $ touch .gitignore
          • 到github上搜索gitignore并拷贝Objective-OC文件中的内容到我自己创建的忽略文件内保存(文件中里面包含了我们需要忽略的文件配置)
          • 添加并提交忽略文件到本地版本库
            • $git add .gitignore
            • $ git commit -m “新建.gitignore忽略文件” .gitignore
      • 创建我们的XCode工程
        • 项目保存路径选择我们本地的版本库(这是下面的git选项就会变灰不可点击,这是正常的,因为我们当前的目录下就有了git仓库)
      • 提交到本地版本库:创建完成后点击XCode上面的Source Control –> Commit –> 添加注释 –> 提交
      • 提交到远程版本库(共享版本库):Source Control –> Push –> 选择远程版本库 –> Push

XCode使用git(添加第三方框架)

  • 开发中我们或多或少会使用到第三方框架,而我们将框架拖入工程的时候会发现git无法识别的情况,这个原因是因为我们拖入的是整个文件夹,如果我们直接拖入的文件不是包含在文件夹下,那么就可以识别

  • git中第三方框架(静态库)的处理方式

    • 方式一:直接创建和框架相对应的文件夹,然后将框架文件夹内的文件拖入到工程中
    • 方式二:直接右击需要添加的文件 –> source control –> add
    • 方式三:点击需要添加文件所属的文件夹 –> Source Control –> Add “xxxx”
    • 方式四(命令行):
      • $ cd 文件所在路径
      • $ git add .

XCode回退操作

  • 在XCode中,我们要进行回退操作很简单:Source Control –> Discard All Changes(取消所有的更改)就可以了

XCode多人开发冲突解决

  • 在多人开发中,很容易出现版本之间的冲突问题,一般我们都是先提交代码到本地仓库,然后一段时间提交一次到远程版本库中,这段时间可能别的开发者已经提交过文件,并且修改了和你同一文件的同一行,那么此时要提交就会报错
  • 处理方式:
    • Source Control –> Pull –> 选择修改样式 —-> 确定
    • Source Control –> push –> 提交

创建新成员的共享版本库

  • 有时候开发过程中会出现新的团队成员,而考虑到新成员和老成员使用git方式不一样或者不熟悉,为了保证代码的安全性,会新建一个专门给新成员的共享版本库,以供观察
  • 创建新成员共享版本库(步骤)
    • 在远程共享版本库中新建一个新成员文件夹
    • 打开远程共享版本库
      • $ cd 远程共享版本库中新成员文件夹的路径
    • 初始化新的共享版本库
      • $ git init –bare
    • 为确保拷贝到新成员共享版本库中的工程为最新版,操作之前先pull一次工程
    • Source Control –> 鼠标移至工程分支选项 –> 选择弹出菜单中的Configure … –> 在弹出窗口中选择 –> Remotes(远程) –> 点击左下角”+” –> Add Remote… –> name:分支标记 Address:需要添加的仓库地址 –> Done –> Source Control –> Push –> 选择新成员分支 –> push
    • 到此,新成员拿到仓库地址
      • $ cd 本地仓库路径
      • 下载远程仓库中的工程
        • $ git clone 远程仓库路径
  • 如果要检查新成员的工作成果,那么也需要下载新人共享版本库的工程
    • 先在本地创建一个存储目录
    • 然后打开该目录
      • $ cd 本地存储目录路径
    • 下载工程
      • $ git clone 新人共享版本库的路径

查看提交日志

  • Source Control –> History…
  • 在日志中可以点击对应日志中右边的 show 查看修改的情况

将工程托管到github或osChina平台

github篇:

  • 使用github有个比较不好的地方 – 要想免费必须开源,如果不开源只能付费使用

  • 肯定要有账号(步骤就不演示了)

  • 创建远程git版本库
    • 点击右上角 “+” 号 –> New repository
    • repository name(一般为项目名称) –> Description(项目描述) –> 开源选择“Public”(免费)不开源选择”Private”(收费,7美元/1个月) –> 选择是否生成README说明文档 –> 忽略文件选择(选择Objective-OC)–> 选择协议(一般选择 Apache License 2.0协议)–> 创建
    • 连接远程版本库配置
      • 打开XCode –> XCode –> Preferences –> Accounts –> 左下角 “+” –> Add Repository… –> Address:远程版本库的HTTPS地址 Type:管理工具类型 Authentication:认证方式 User Name:用户名 Password:密码 –> Add
    • 连接远程版本库
      • Source Control –> Chack Out –> 在弹出的窗口中找到我们需要的版本库并选择 –> Next –> 在弹出窗口中选择需要存储的位置
    • 创建工程:将项目添加到版本库的目录下 –> Source Control –> Commit –> 提交
    • 将本地版本库的工程提交到远程版本库:Source Control –> Push –> 提交

删除代码仓库

  • 登录github –> 找到仓库 –> Settings –> 最下面有个Delete this repository – 输入需要删除的仓库名 – 提交

将旧项目添加到git版本库中

  • 创建远程仓库
  • 配置远程仓库并连接
  • 使用命令行将文件加入到管理列表中
    • $ git add .
  • 提交代码到本地版本库
    • $ git commit -m “注释”
  • 提交代码到远程版本库

git使用

标签:

原文地址:http://blog.csdn.net/yeshaojian/article/details/51317297

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!