原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://2009315319.blog.51cto.com/701759/1158515

很多Git命令都是在命令行下运行的,命令行下管理Git有很多优点不用多说。但最大的缺点是要求用户记住这些命令。因此Git图形界面还是很受一 些用户欢迎的,其中Xcode作为集成开发环境工具,也提供了一定Git图形界面功能。但是要想在Xcode中使用Git管理工程代码还想需要进行一些配 置,然后才能使用。

如果我们是使用Xcode 4创建的一个iOS工程,在终端的命令行中提交代码时候,可能会出现下面的部分信息:

create mode 100644 HelloWorld/HelloWorld.xcodeproj/project.xcworkspace/contents.xcworkspacedata

create mode 100644 HelloWorld/HelloWorld.xcodeproj/project.xcworkspace/xcuserdata/tonyguan.xcuserdatad/UserInterfaceState.xcuserstate

create mode 100644 HelloWorld/HelloWorld.xcodeproj/xcuserdata/tonyguan.xcuserdatad/xcschemes/HelloWorld.xcscheme

create mode 100644 HelloWorld/HelloWorld.xcodeproj/xcuserdata/tonyguan.xcuserdatad/xcschemes/xcschememanagement.plist

rewrite HelloWorld.xcodeproj/project.xcworkspace/xcuserdata/tonyguan.xcuserdatad/UserInterfaceState.xcuserstate (83%)

事实上是能够列入到代码版本控制的文件是有规定的,不能是编写的二进制文件、临时文件和用户特有的文件等。下面是Xcode 4创建的HelloWorld工程的目录结果:

HelloWorld

├── HelloWorld

│   ├── AppDelegate.h

│   ├── AppDelegate.m

│   ├── HelloWorld-Info.plist

│   ├── HelloWorld-Prefix.pch

│   ├── ViewController.h

│   ├── ViewController.m

│   ├── en.lproj

│   │   ├── InfoPlist.strings

│   │   └── ViewController.xib

│   └── main.m

└── HelloWorld.xcodeproj

├── project.pbxproj

├── project.xcworkspace

│   ├── contents.xcworkspacedata

│   └── xcuserdata

│       └── tonyguan.xcuserdatad

│           └── UserInterfaceState.xcuserstate

└── xcuserdata

└── tonyguan.xcuserdatad

├── xcdebugger

│   └── Breakpoints.xcbkptlist

└── xcschemes

├── HelloWorld.xcscheme

└── xcschememanagement.plist

其中HelloWorld.xcodeproj属于包文件,它内部的很多东西是不能提交的,包括:project.xcworkspace和 xcuserdata,它们是与用户有关的。Git中有一个.gitignore配置文件,在这个文件中可以设置被忽略的文件。下面的内容是一 个.gitignore配置文件:

# Exclude the build directory

build/*

# Exclude temp nibs and swap files

*~.nib

*.swp

# Exclude OS X folder attributes

.DS_Store

# Exclude user-specific XCode 3 and 4 files

*.mode1

*.mode1v3

*.mode2v3

*.perspective

*.perspectivev3

*.pbxuser

*.xcworkspace

xcuserdata

文件中#号是注释,可以使用正则表达式,文件考虑到了X code 3和4差别。这个文件创建之后,应该放在什么地方?如果只考虑对一个特定工程忽略,.gitignore文件应该放在代码库目录下面,目录结构如下所示:

<代码库目录>

└── HelloWorld

├── HelloWorld

│   ├── AppDelegate.h

│   ├── AppDelegate.m

│   ├── Default-568h@2x.png

│   ├── Default.png

│   ├── Default@2x.png

│   ├── ViewController.h

│   ├── ViewController.m

│   ├── HelloWorld-Info.plist

│   ├── HelloWorld-Prefix.pch

│   ├── en.lproj

│   │   ├── InfoPlist.strings

│   │   └── MainStoryboard.storyboard

│   └── main.m

└── HelloWorld.xcodeproj

└── .gitignore

如果考虑适用于所有的Xcode工程,则需要使用git config命令配置git,在终端中执行git config命令:

$ git config –global core.excludesfile  ~/.gitignore

该命令会将配置信息写入到~/.gitconfig文件中,–global参数是配置全局信息,~/.gitignore说明文件是放置于当前用户目录下。

为了使本机上的所有代码库都默认使用git用户,还需要执行如下命令进行配置:

$ git config –global user.name git

$ git config –global user.email eorient@sina.com

在Xcode中使用git还会遇到很多问题,老关总结常见的4个问题,明天和大家分享一下,得干活去了

问题1,如何在Xcode中创建代码库,并添加和提交代码到代码库?

问题2,如何在Xcode中提交推送给远程服务器代码库?

问题3,如何在Xcode中克隆远程服务器代码库到本地?

问题4,如何使用Xcode获取远程代码库数据,并解决冲突问题?

本文出自 “关东升” 博客,请务必保留此出处http://2009315319.blog.51cto.com/701759/1158515

git Xcode的更多相关文章

  1. Git Xcode配置

    本文转载至 http://www.cnblogs.com/imzzk/p/xcode_git.html 感谢作者分享 Git源代码管理工具的出现,使得我们开发人员对于源码的管理更加方便快捷.至于Git ...

  2. 版本控制— SVN & git

    版本控制—— SVN & GIT 提问 什么是版本控制? 是能够一直监视代码文件的变更,并存储这些文件以便将来引用的一种机制(软件) 为什么要使用版本控制? (1)记录哪个开发人员做了变更 ( ...

  3. OC静态代码检查实战

    此文已由作者杨晓授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 在Mac OS系统上,采用Xcodebuild Analyze命令和OClint工具,对iOS项目进行静态代码 ...

  4. 制作并发布个人CocoaPods库

    随着对 CocoaPods 越来越多的依赖,我们也可以尝试把自己的库发布到它上面. 1.在Github上新建一个项目(名字我随便取了一个,其他步骤截图为WCUIKit).自己做相应修改即可. 2.克隆 ...

  5. xcode 版本控制推送代码到远程git仓库的步骤

    一 代码推送到远程git仓库 1.在git中建立一个下项目(假设项目名称为->Mygit) 2.在xocde上新建一个测试项目(假设项目名称为GitTest) 3.打开电脑终端: 1)首先利用终 ...

  6. xcode svn commit is not under version control (1) & git commit

    使用Xcode提交一个第三方库时,由于包含资源文件,总是提交不了,提示报错:XXX commit is not under version control (1) 网上查了下,得知 xcode对于sv ...

  7. xcode升级导致git无法使用

    skytraveler:lucas$ git Agreeing to the Xcode/iOS license requires admin privileges, please re-run as ...

  8. iOS 从git拷贝Xcode的snippets

    do following things in terminal 1. check out the project using: git clone gitAddress 2. cd the proje ...

  9. XCode与Git的完美融合,不再依赖其它Git客户端

    Git源代码管理工具的出现,使得我们开发人员对于源码的管理更加方便快捷.至于Git的优点以及与其他源代码管理工具有何区别,不是本文的重点,如果想深入了解可以搜索一下这方面的文章.下面直接进入主题,如何 ...

随机推荐

  1. 基于jQuery图像碎片切换效果插件FragmentFly

    基于jQuery图像碎片切换效果插件FragmentFly.这是一款只需三步轻松完成碎片动画,参数可调,使用方便. 在线预览   源码下载 部分代码: <div class="all_ ...

  2. 4款基于jquery的列表图标动画切换特效

    网页中列表图标随处可见,特别是移动网页上,基本上的导航都采用了列表图标.今天给大家分享4款基于juqery的列表图标和关闭图标的动画切换特效.喜欢的网友赶紧收藏吧. 在线预览   源码下载 实现的代码 ...

  3. Error reading field 'throttle_time_ms': java.nio.BufferUnderflowException

    可能出现的问题: ERROR o.a.k.c.p.i.Sender – Uncaught error in kafka producer I/O thread: org.apache.kafka.co ...

  4. C语言 · 寂寞的数

    算法训练 寂寞的数   时间限制:1.0s   内存限制:256.0MB      问题描述 道德经曰:一生二,二生三,三生万物. 对于任意正整数n,我们定义d(n)的值为为n加上组成n的各个数字的和 ...

  5. [log]利用logrotate对Linux log进行管理

    转自:http://feikiss.iteye.com/blog/1402181 https://linux.cn/article-4126-1.html Syslog-ng服务是Linux系统中重要 ...

  6. 【SpringMVC笔记】第一课-框架执行过程

    SpringMVC模型的执行流程

  7. WPF教程二:布局之StackPanel面板

    应用程序界面设计中,合理的元素布局至关重要,它可以方便用户使用,并将信息清晰合理地展现给用户.WPF提供了一套功能强大的工具-面板(Panel),来控制用户界面的布局.你可以使用这些面板控件来排布元素 ...

  8. GDI+(一):GDI+ 绘图基础

    一.GDI+绘图基础 编写图形程序时需要使用GDI(Graphics Device Interface,图形设备接口),从程序设计的角度看,GDI包括两部分:一部分是GDI对象,另一部分是GDI函数. ...

  9. mac配置完ssh依然提示"Enter passphrase for key"解决方法

    使用Git,每次都提示输入命令. 这个问题折磨很久,明明已经配置过ssh了,可是每次还要提示输入密码,从网上查查,最后一条命令解决问题: 问题提示: Enter passphrase for key ...

  10. jQuery方法笔记

    .clone() $(selector).clone(includeEvents) $(this).clone(true) //boolean值,true/false分别对饮是否复制元素的所有事件处理