閱讀569 返回首頁    go 阿裏雲 go 技術社區[雲棲]


iOS開發那些事-Git在Xcode中的配置與使用常見問題總結

書接上回提出的Git在Xcode中的配置與使用常見問題4個問題

問題1,如何在Xcode中創建代碼庫,並添加和提交代碼到代碼庫?

問題2,如何在Xcode中提交推送給遠程服務器代碼庫?

問題3,如何在Xcode中克隆遠程服務器代碼庫到本地?

問題4,如何使用Xcode獲取遠程代碼庫數據,並解決衝突問題?

 

1、問題1

創建代碼庫有兩種方式,一種是新建工程時候創建,另一種是把現有的工程拷貝到代碼庫下,再初始化代碼庫。

如果是新建工程時候創建,在保存文件時候可以選擇是否創建,如果勾選“Create local git repository for this project”,則就會為工程創建代碼庫。

 1

注意Xcode 4生成的目錄結構如下:

1  HelloWorld

2 ├── HelloWorld

3 │   ├── …

4 │   ├── ViewController.h

5 │   ├── ViewController.m

6 │   ├── en.lproj

7 │   │   ├── InfoPlist.strings

8 │   │   └── MainStoryboard.storyboard

9 │   └── main.m

10└── HelloWorld.xcodeproj

11│

12└──.git

第一行的HelloWorld是工程目錄也是代碼庫的根目錄,第二行的HelloWorld目錄是存放源程序目錄。而我們以前的目錄結構與此不同,目錄結構如下所示:

1  myrepo

2└── HelloWorld

3│   ├── HelloWorld

4│   │   ├── …

5│   │   ├── ViewController.m

6│   │   └── main.m

7│   └── HelloWorld.xcodeproj

8└──.git

第一行myrepo是代碼庫的根目錄,第二行的HelloWorld是工程目錄,這樣的結構可以一個代碼庫可以放置多個工程,是一對多的關係,而Xcode生成的方式是代碼庫就是工程目錄,它們是一對一的關係。

如果我們還是采用一對多的關係,就不用在創建工程的時候勾選“Create local git repository for this project”選項了。這就需要將現有的HelloWorld工程拷貝到myrepo目錄,在終端中執行如下命令:

$ cd ~/myrepo

$ git init

Initialized empty Git repository in  ~/.git/

初始化完成之後在添加並提交HelloWorld工程,在終端中執行如下命令:

$ git add .

$ git commit -m ‘tony init’

[master (root-commit) 98d7e4a] tony init

10 files changed, 643 insertions(+)

create mode 100644 HelloWorld/HelloWorld.xcodeproj/project.pbxproj

create mode 100644 HelloWorld/HelloWorld/AppDelegate.h

create mode 100644 HelloWorld/HelloWorld/AppDelegate.m

create mode 100644 HelloWorld/HelloWorld/HelloWorld-Info.plist

create mode 100644 HelloWorld/HelloWorld/HelloWorld-Prefix.pch

create mode 100644 HelloWorld/HelloWorld/ViewController.h

create mode 100644 HelloWorld/HelloWorld/ViewController.m

create mode 100644 HelloWorld/HelloWorld/en.lproj/InfoPlist.strings

create mode 100644 HelloWorld/HelloWorld/en.lproj/ViewController.xib

create mode 100644 HelloWorld/HelloWorld/main.m

然後就可以在Xcode中代碼這個工程了。我們修改並保存文件後,會看到在導航麵板中文件的後麵有一個“M”圖標,這說明文件修改了但沒有提交。

 2

如果隻是想提交選中的文件,可以是右鍵菜單Source Control→Commit Selected Files…,其中的Source Control菜單都是有關代碼控製的。如果想提交全部的修改文件,可以菜單File→Source Control→Commit…。然後會彈出對話框。

 3

其中有兩個代碼窗口,左邊是本地未提交版本,右邊是代碼庫中的版本,這裏可以比較看看修改了哪些內容。在下麵輸入框中添加注釋,點擊提交按鈕就可以提交了。

2、問題2

本地有代碼庫提交推送給遠程服務器代碼庫,在Xcode中可以通過菜單File→Source Control→Push…進行推送,但是如果是第一次訪問,會出現對話框,沒有可以推送的遠程服務器代碼庫名。

 4

我們需要建立這個名字,在命令行中我們是通過$ git remote add hw git@192.168.1.108:myrepo創建的,其中hw就是這個名字。在Xcode中可以通過菜單Window → Organizer,選中Repositories→myrepo→Remotes,點擊左下角的“Add Remote”按鈕,彈出對話框,在Remote Name項目中輸入remote_repo,Location項目中輸入git@192.168.1.108:myrepo,完成之後點擊Create按鈕創建這個名字。

 5

創建完成再重新推送,如果彈出對話框,Push按鈕是可以點擊的,點擊Push按鈕推送。

 6

3、問題3

這個問題是從服務器代碼庫克隆到本地,首先需要在Xcode中添加一個遠程代碼庫,需要通過菜單Window → Organizer進入到Repositories畫麵,點選左下角的“+”按鈕,選擇Add Repository,在Location項目中輸入git@192.168.1.108,Type項目選擇Git,Name項目會自動添加,如果Authentication required為變為黃色小點,說明配置連接沒有問題,然後點擊Add按鈕創建。

7

如果創建成功,就會出現在左邊代碼庫列表中,請選擇剛才創建的代碼庫,然後選擇下麵的Clone按鈕,並選擇本地保存位置。

 8

4、問題4

如果服務器代碼有新的版本,獲取遠程代碼庫數據到本地,可以通過菜單File→Source Control→Pull…。然後會彈出對話框。選擇Choose按鈕就可以獲取新的版本了。

9

如果這個過程中有衝突發生,會彈出對話框在兩個代碼窗口中可以看到它們的衝突點,

10

下麵的4個按鈕,可以把衝突點進行合並,並進行編輯。如果沒有衝突,Pull是可以點擊,點擊Pull按鈕就可以了。

最後更新:2017-04-03 22:15:39

  上一篇:go Ubuntu 12.10擊敗Windows 8的十個理由
  下一篇:go 使用HttpURLConnection下載文件時出現 java.io.FileNotFoundException徹底解決辦法