很多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
檔案中#號是注釋,可以使用Regex,檔案考慮到了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擷取遠程程式碼程式庫資料,並解決衝突問題?