為Xcode配置Git和Github


Xcode、Git和Github是三個偉大的編程工具。本文記錄一下如何在Xcode中使用Git作為源代碼控制工具,以及如何將本地的Git倉庫和遠程Github上的倉庫集成起來。

1. 如何為新建的Xcode項目使用Git

Xcode4開始,就已經將Git作為內置的源代碼控制(Source Control)工具了,所以為新建的項目使用git來管理是很方便的。

在新建項目向導中,可以直接選擇Git作為源代碼控制工具,完成項目新建向導后,就在本地項目目下新建了一個倉庫。

2. 如何為已經存在的項目使用Git

如果已經存在了一個Project,想要為它使用Git,可以利用Git的命令行來操作。

假設該項目的根目錄是: ~/Documents/Projects/ProjectA

(1) 在終端中先進入該目錄:

cd ~/Documents/Projects/ProjectA

(2) 在該目錄初始化Git倉庫:

git init

 

(3) 注意,這時一定不要着急將目錄下的所有文件都添加進來,先手工設置一些針對Mac OS X上的無用文件的排除(exclude),在項目根目錄(ProjectA)下新建.gitignore文件,在該文件中添加如下排除規則:

# 排除build目錄
build/*
 
# Exclude temp nibs and swap files
# 排除nib臨時文件和交換文件
*~.nib
*.swp
 
# 排除OS X的文件夾顯示屬性目錄
.DS_Store
 
# 排除xcode3 xcode4的用戶自定義設置文件
*.mode1
*.mode1v3
*.mode2v3
*.perspective
*.perspectivev3
*.pbxuser
xcuserdata

上面的規則只是大多數開發者都不需要進行版本控制的文件,還可以根據實際需要添加其它排除規則. 關於.gitignore更多的信息可以google之

(4) 向git倉庫中添加源文件

繼續在終端命令行中,進入ProjectA下,

git add .
git commit -m "Initial commit"

然后重啟Xcode,就可以在Orgnizer視圖中的“Repositories”選項卡界面下看到ProjectA的倉庫了,並且已經完成了源代碼的初次提交。此后,就可以進行源代碼在本地倉庫的版本控制了。

3. 如何將Xcode的本地Git倉庫與Github的遠程倉庫集成?

Github的理念源自於Git,但是與Git相比已經有了一些異化的功能特性(比如Pull Request),所以二者並非完全一致的。但是從版本控制方面來說,差別不大。所以利用Xcode內置的Git管理功能即可與Github連接,而無需額外安裝Github客戶端。

Github的倉庫地址有兩種方式:

一種是SSH連接方式,形式為:git@github.com:Hao-Wu/ProjecA.git

一種是HTTP形式,形式為:https://github.com/Hao-Wu/ProjectA.git

這兩種倉庫地址使用的認證方式也不一樣。對於SSH連接,使用非對稱公鑰認證方法;對於HTTP連接,使用帳號密碼認證方式。

3.1 使用SSH方式

# 檢查本機是否已經存在ssh公鑰
$ cd ~/.ssh

如果以前已經生成過ssh密鑰對,那么就存在這個.ssh目錄,目錄下有id_rsa.pub公鑰文件。如果還記得這個密鑰對生成的細節(比如passphrase),就可以直接拿來用;否則就再多花費半分鍾時間,生成新的密鑰對(記得先備份舊的密鑰文件,說不定其它什么項目或程序在使用):

#創建新的SSH密鑰對
$ ssh-keygen -t rsa -C "your_email@example.com"

Enter passphrase (empty for no passphrase): [輸入密碼]
Enter same passphrase again: [再次輸入密碼]

到這里,SSH密鑰對就生成了,接下來將id_rsa.pub文件用文本編輯器打開,將其中的全部字符串拷貝,並粘貼到web版的github.com中SSH公鑰設置內。這樣Xcode就可以利用SSH認證與github連接。先測試一下:

$ ssh -T git@github.com

本機就會向github發出一個連接請求,隨后Mac OS會彈出一些安全認證和請求獲取授權的提示框,要選擇允許。如果github的服務器返回:

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

這就說明本地的git已經能夠成功與github服務器通信了。(不用擔心上面的訪問被拒絕的提示)。在確定能夠與github服務器連接后,即可為ProjectA的本地git倉庫添加遠程地址:

依次點擊,  Orgnizer –> Repositories –> ProjectA –> Remotes –> Add Remote

輸入ProjectA在github上的地址(如果沒有就先在github.com的倉庫管理頁面新建一個名為ProjectA的倉庫):git@github.com:Hao-Wu/ProjecA.git

Username與Password不用輸入,關閉Orgnizer視圖。在File –> Source Control中即可將本地倉庫的代碼Push到github上了。

3.2 使用HTTP方式

使用http認證方式省去了生成SSH證書的步驟,但是在每次提交時都需要輸入github的帳號和密碼。

類似地,依次點擊 Orgnizer –> Repositories –> ProjectA –> Remotes –> Add Remote

輸入ProjectA在github的http形式的地址:https://github.com/Hao-Wu/ProjectA.git

在UserName和Pasword中分別輸入github網站登錄的用戶名和密碼 (用戶名不是郵箱形式)。關閉Orgnizer視圖,File –> Source Control –> Push, 即可向github中push本地倉庫的代碼。這個過程可能需要重新輸入一遍github的用戶名和密碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM