git是一个版本号控制系统,能够通过命令行来调用,也有专门的桌面软件。这里主要介绍在Xcode中怎样利用git来进行版本号的控制。

一、创建git源

从Xcode5開始引入了使用git的一些新特性。将git的各项功能整合到一个菜单中,而且提供子菜单来进行软件合并的控制。当用Xcode创建一个project时,会出现一个复选框即如图所看到的:

一般默认情况下是被选上的,假设不想使用git。能够把它取消掉。当创建完项目project后。打开项目project所在的目录。会发现一个.git子目录。这是在创建project时。勾选上上面复选框后Xcode为存储git源相关数据自己主动创建的。

假设看不到.git子目录,可能是文件被隐藏了,能够通过打开终端,输入命令:

defaults write com.apple.finder AppleShowAllFiles TRUE
来显示隐藏的文件;隐藏文件:defaults write com.apple.finder AppleShowAllFiles FALSE

	当刚開始创建project时不勾选上图中复选框时,后面创建完project后能够通过终端命令行来生成git源:
        终端打开project文件:cd  /Users/YOUR-USERNAME/Desktop/NogitDemo ,同一时候在这条命令中设置MAC的username,
    然后输入:git init,初始化一个空的源。这时.git文件夹已经被创建好,
    接下来输入:git add,当前文件夹的全部内容被加入到源里去了。
    最好:git commit -m 'Initial commit',这样git源就创建好了,Soure Control菜单就能够使用了

二、提交更改
   在project中加入代码,这时候会在ViewController.m文件旁边。加入了一个M字母,如:
     
说明那个文件已经被改动,这时候点击Source Control>Commit菜单项,弹出例如以下窗体:

点击Commit 1 File文件就提交成功了,同一时候之前文件右边的M就会消失。
三、分支
    在git中默认都会有一个分支,叫做master。单独的开发人员仅仅在master这个分支开发,这事实上不是一个好习惯。不管你是单打独斗还是组团合作,在对项目作出重大改变或加入重大功能时。使用分支是十分重要的。
    创建一个分支。点击Source Control > GitDemo-master > New Brance…这个菜单,然后会弹出例如以下菜单:

输入分支名newBranch。点击Create就创建好了。
       然后在这个新创建的分支里写入代码,不会影响到原来的Master分支,通过点击Source Control > GitDemo –AnotherBranch > Switch to Branch…菜单项能够进行分支切换。
在分支合并前。在newBranch里写入的代码不会同步到Master分支里去,不会影响之前稳定的版本号。
四、合并分支
     首先,确保master分支是如今的活动分支。假设不是。要改过来:Source Control > GitDemo – AnotherBranch > Switch To Branch… menu,并从展示窗体选择master分支。
     打开Source Control > GitDemo – master > Merge From Branch…菜单,进行分支的合并。当有多个开发者合并时,要注意后面合并时会出现报错情况,那是由于在合并时系统并非那么智能的识别到了须要合并的整个模块。所以合并后可能会出现报错的现象。

这是一个坑呀!

!不知道哪位大神可有挽救的办法。。。
五、忽略更改
       放弃不想要的代码更改功能很实用,当你在开发过程中发现出了大乱子,你想从上一个稳定状态又一次開始时,这个功能就派上用场啦。注意放弃更改这个功能没有回头路,点完之后你就没有办法再撤销这个操作了。
      当你更改代码后,在提交(Commit)之前Discard All Changes和Discard Changes in “ViewController.m”...两个都能够点选,

提交(Commit)之后。Discard Changes in “ViewController.m”...会变成灰色,

Xcode中利用git源代码版本号控制的更多相关文章

  1. eclipse中使用git进行版本号控制

    协作开发的时候没有版本号控制是非常痛苦的事情,使用git能够非常好的完毕这项任务,由于非常多的开源码都在github上公布,因此学会使用git是非常重要的一项技能. 这篇写的是在eclipse下使用的 ...

  2. 在Xcode中使用Git进行源码版本控制

    http://www.cocoachina.com/ios/20140524/8536.html 资讯 论坛 代码 工具 招聘 CVP 外快 博客new 登录| 注册   iOS开发 Swift Ap ...

  3. 【转】在Xcode中使用Git进行源码版本控制 -- 不错

    原文网址:http://www.cocoachina.com/ios/20140524/8536.html 本文翻译自Understanding Git Source Control in Xcode ...

  4. Qt中利用QTime类来控制时间,这里简单介绍一下QTime的成员函数的用法:

    Qt中利用QTime类来控制时间,这里简单介绍一下QTime的成员函数的用法: ------------------------------------------------------------ ...

  5. AndroidStudio中利用git下载github或者git.oschina的代码时报错:repository test has failed解决方法

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 微博:http://weibo.com/mcxiaobing AndroidS ...

  6. 在VS项目中通过GIT生成版本号作为编译版本号

    上一篇博客写了如何在 .Net 项目使用 SVN 作为版本控制工具时生成与代码对应的组件版本号.虽然在公司一直使用 SVN ,但我却对 GIT 情有独钟(可能要归功于那段捣鼓 ROM 的时光),但少有 ...

  7. Git(一):Git与版本号控制简单介绍

    Intro 版本号控制系统是什么      版本号控制系统(Version Control System,VCS)能够帮助我们记录和跟踪项目中各文件内容的改动变化.它能够帮我们保存项目的各个版本号.以 ...

  8. [翻译] USING GIT IN XCODE [5] 在XCODE中使用GIT[5]

    USING GIT IN XCODE USING BRANCHES Branches can be a very effective tool to isolate new features or e ...

  9. [翻译] USING GIT IN XCODE [1] 在XCODE中使用GIT[1]

    USING GIT IN XCODE http://www.cimgf.com/2013/12/10/using-git-in-xcode/ Git has become a very popular ...

随机推荐

  1. nginx配置本地https

    客户端如何验证服务器的证书呢?服务器自己的证书必须经过某"权威"证书的签名,而这个"权威"证书又可能经过更权威的证书签名,这么一级一级追溯上去,最顶层那个最权威 ...

  2. Problem C: 矩阵对角线求和

    #include<stdio.h> int main() { ][]; scanf("%d",&n); ,sum2=; ;i<n;i++) ;j<n ...

  3. Problem C: 零起点学算法93——矩阵转置

    #include<stdio.h> int main() { ][],b[][]; while(scanf("%d%d",&n,&m)!=EOF) { ...

  4. React中的表单元素

    在web应用开发当中,表单还是很重要的元素. 应用表单组件有:文本框(input.textarea).单选按钮和复选框.Select组件. 文本框:文本框的状态改变即文本框中的内容的改变.此时的sta ...

  5. [转]软件开发规范—模块开发卷宗(GB8567——88)

    做软件开发是有那么一套国准可参照的,当然就是那些文档了,这里列出一下所有软件开发的规范文档: 操作手册 用户手册 软件质量保证计划 软件需求说明书 概要设计说明书 开发进度月报 测试计划文档 测试分析 ...

  6. HDU 1864 Brave Game 【组合游戏,SG函数】

    简单取石子游戏,SG函数的简单应用. 有时间将Nim和.SG函数总结一下……暂且搁置. #include <cstdio> #include <cstring> #define ...

  7. go排序后索引

    最近碰上了一个需求,要得到排序后的原索引序列. 我又不希望自己重新实现一快排出来,所以在接口上重新封装了一下. package main import ( "fmt" " ...

  8. 使用moment.js管理时间

    如果在nodejs下 npm install moment 引用模块: var moment = require('moment'); 用法: 当前时间:2015-11-07 18:00:51 mom ...

  9. django queryset合并问题

    今天在实现搜索时遇到一个问题,如何同时搜索model里面的title以及content和category字典 contents = Blog.objects.filter(content__conta ...

  10. 2014面试总结--java、数据 方向

    这里不讲详细的题目.仅仅是总结一下体会. 好一点的公司考察的都比較全面,主要看你对原理性的理解.还有你的思维逻辑:就眼下来讲,对深度的考察大于广度.而我个人如今这个阶段也比較专注于深度. 列一些常常问 ...