顯示廣告
隱藏 ✕
看板 KnucklesNote
作者 Knuckles (站長 那克斯)
標題 [Xcode][Swift3] 將專案上傳至 GitHub 與其他人共同開發
時間 2017-03-21 Tue. 20:58:10


延續上一篇 [Xcode][Swift3] 使用 Git 版本控制系統 - KnucklesNote板 - Disp BBS
將專案使用 Git 做版本控制了
但這樣也只能自己用而已,要讓多人共同開發的話要找個網站上傳

這篇要記錄如何將專案上傳至 GitHub 網站

GitHub 是現在最多人使用的程式碼代管網站
使用免費方案的話程式碼必需公開分享,無限制上傳數量
若付費的話可以只限團隊成員存取


在 GitHub 新增 Repository

先在 GitHub 註冊一個帳號
[圖]


帳號使用的方案選免費的就好
[圖]

免費方案的限制就是上傳的程式碼都要設為公開
* 2020年後免費方案也可以設為私人了

點「New Repository」新增一個程式碼倉庫
[圖]


倉庫名稱輸入「GitExample」
不要勾選建立 README,也不要加上 .gitignore 與 license
點「Create repository」
[圖]


複製 https 網址
https://github.com/KnucklesHuang/GitExample.git
[圖]



在 Xcode 新增一個 Remote

回到 Xcode,上傳前要先建立一個 Remote

點「Source Control」/「GitExample - master」/「Configure GitExample」
[圖]


選擇「Remotes」頁後,點左下角的「✚」,選「Add Remote...」
[圖]


Remore Name 輸入「GitHub-GitExample」
Address 貼上剛剛複製的 https 網址,點「Add Remore」
[圖]


建立好一個 Remote 了,點「Done」
[圖]



使用 Push 上傳分支 master

建立好 Remote,就可以使用 Push 上傳了

點「Source Control」/「Push...」
[圖]


選擇剛剛建立的 Remote/master,點「Push」
[圖]

將目前使用的分支 master 上傳

輸入登入 GitHub 的帳號密碼,按「OK」
[圖]

帳號密碼只要輸入一次,之後 Xcode 會記得
可以在「Xcode」/「Preferences...」/「Accounts」裡修改或刪除

上傳成功後,回到 GitHub 重整一下看看
https://github.com/KnucklesHuang/GitExample
[圖]



之後 Commit 時,可以在左下方勾選「Push to remote:」
[圖]

就可以在 Commit 時也上傳新的版本到 GitHub 上了


使用 checkout 下載專案

假設自己是另一個想一起開發 GitExample 的使用者

開啟 Xcode 時選擇「Check out an existing project」
[圖]


或是點「Source Control」/「Check Out...」
[圖]


因為我們之前有新增 Remote 所以這邊會有 GitExample 可以選
[圖]


沒有新增 Remote 的話,先在 GitHub 網頁複製 https 網址
[圖]


貼在 repository location: 後點「Next」
[圖]


輸入專案資料夾的名稱,這邊使用「GitExample2」以示區別
儲存的位置選擇個人資料夾裡的 Xcode 資料夾,點「Download」
[圖]

會建立好一個存在 ~/Xcode/GitExample2/ 資料夾的 GitExample 專案


這樣就可以將 GitHub 上的程式下載至 Xcode 編輯了
不一定要是自己帳號下的程式,只要是公開的都可以下載來研究

來修改一下程式上傳新的版本看看

在 ViewController.swift 加上成員函數
    func testNewUserPush(){
        print("This is from new user!!")
    }

執行 Commit,左邊會看到有兩個打問號的檔案可以不用加
左下勾選「Push to remote: origin/master」,
點「Commit 1 File and Push」
[圖]


這樣就會上傳新的版本到 GitHub 上了
可以在 GitHub 網頁看看有沒有更新


回到原本存在 ~/Xcode/GitExample/ 的專案

這邊也在 ViewController.swift 新增一個成員函數看看
    func testOriginalUserPush(){
        print("This is from original user!!")
    }

執行 Commit and Push 看看,會執行 Commit 但 Push 會失敗
[圖]


因為 GitHub 上的 repository 已經被另一個使用者更新了
必需先使用 Pull 下載新的版本

點選「Source Control」/「Pull...」
[圖]


選擇「GitHub-GitExample/master」,點「Pull」
[圖]


發現有程式碼出現衝突,會標記紅色的「C」
需要解決衝突後才可以下載
[圖]


點一下問號後,在下面的四個按鈕選一個處理方式:
先左再右、選左邊、選右邊、先右再左

點先左再右,表示兩個函數都要留下來,左邊的函數排前面,右邊的函數排後面
[圖]


發現這樣函數 testOriginalUserPush() 會少一個右大弧號,
可以手動補上去後再點「Pull」
[圖]


這樣就將其他使用者上傳的版本更新進來了
接著再將我們的更新上傳上去


執行 Commit,左下角勾選「Push to remote: GitHub-GitExample/master」,
點「Commit 1 File and Push」
[圖]

成功的 Commit 並使用 Push 上傳了


想要新增 .gitignore 檔略過部份檔案的話,參考這篇
[Xcode][Swift3] 新增 .gitignore 略過不需加入 git 的檔案 - KnucklesNote板 - Disp BBS


--
※ 作者: Knuckles 時間: 2017-03-21 20:58:10
※ 編輯: Knuckles 時間: 2023-11-07 16:29:14 (台灣)
※ 看板: KnucklesNote 文章推薦值: 0 目前人氣: 0 累積人氣: 1196 
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇