在Xcode 8使用Git版本控制系統
之前在iTunes U看到Stanford University 的CS193p課程,最近想從頭跟著Paul Hegarty老師的腳步修完這門課,但是對我自己不要有進度壓力,所以可能接下來會花好長一段時間在這個課程上(但還是預計過年前能修完這門課 xDD)
在看第一堂課,老師要請我們做一個簡易的計算機,但是沒有教我們做版控管理,我想說之前有做過幾次,不過好一段時間沒碰又生疏了,乾脆現在來整理一下,順便把課程檔案上傳到Github上放著。
以下就是參考其他大大的做法,再幫自己寫一份在這裡做個筆記這樣
(注意,這個是在建立專案時同時做一份Git Repository,如果要在現有的專案加上Git Repository,可能之後再寫,如果我記得的話xD)
Step1 建立專案:
由於我是從CS193p課程開始的,我就以課程檔案(Calculator)做示範,如果有自己的專案,可以用自己的名字,完成後按Next:
初學者通常不需要太複雜的操作,所以方框內預設可以都不用勾 |
在選擇完要儲存的資料夾後,記得把方框部分(Create Git Repository on ...)做勾選
接著打開Finder 進到剛才建立專案的資料夾,點進去,會看到兩個子檔案(Calculator、Calculator.xcodeproj)
因為剛才已經建立Git Repository了,下一步則是要把這個Git顯示出來。
由於預設的資料夾是隱藏的,我們可以用快捷鍵Command + Shift + . 把這個資料夾叫出來,如下所示:
所有Git的資料都會放在這個資料夾下
回到Xcode,我們從選單欄依序選擇Source Control -> History,可以看到在建立專案完成,Xcode同時會保存第一份Commit,下面截圖上寫Initial Commit就是了。
Step2 設定與Github的連結:
登入自己的Github帳號(沒有的話請註冊一個,免費的),新增一個repository。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTzInlIKvOv6Bp-gsT7QG5BFSfunbv3n40Fyj1702pHdtrGYYG5Ef6ZdE2DhFQPaSogYrf7lM7jPlMUk1cychrKmdS8IDd2EqolNO9nZOK1hrOe3FxnD-OveCbFJZbZKtCz6AOLvp3JptS/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.05.15.png)
接著填入相關資料跟設定,我將這個示範命名成Calculator_practice:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5ELwwr5NwYZrMIFILNKOD_1B1chc6E70DNDG-oJvnxQJ7c6kzoif9ljcIBTzMG561siZ3pkjJjxx8d-VVILf2TO6EdElTIgbL8Q8vNadP6GCS7yUTyvLzEne1jPvIXl9aJV3CR5FDvEjI/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.07.39.png)
按下Create repository後,我們要在下一頁複製它給你的連結,作為等一下將專案做綁定的動作:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZhQxbyXv3UXYR4NULmnzeMLNYlkng9N1TZOuMZEJuQP4Bm_UWWXrF74HGRYYPpn-ufHqADzwW-0CNcH-EMkyFRLvjZ3la9CDcyafHUMhqMVNB6szoFVT46GcFJWdBRMXdQrJ69Y8QvBt_/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.17.10.png)
接著回到Xcode,在選單列找到Source Control -> Calculator --- Y master -> Configure Calculator...,點進去
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8spVcSFcxdHScTeewatQgfkI-UfTU7Fp9ZZwqlBkYIisNCRQgcfFGqADdHGkIL-Byp4mc0q7x2WTMmh8Z2CL3mDpn63CPlQNQQNXswrMM1M0LPXrxX5Hb5syHjKiDy7BVuYx_C0ehX50_/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.24.25.png)
接著我們要用剛才複製的連結新增一個Remote,點開下方的加號(+),選Add Remote...
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI_oOXbuoxQDXpXbP9cjtp623_ATcErqjOktImf2Mn5OCKpecbVVkOrUypzspAL67C2hZahvbWRbVvxcgd5U5AKahBRk9lGNgNBBjrY4suJRyLwyatNyD_R43P8seIkaV7jw15C_Xh-ja7/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.24.41.png)
接著輸入名稱與貼上連結。完成後按下Add Remote完成設定:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqbOq81OyS7KbLVlWgpryNk9V1wgdec2kujRYtQbFeLaI927SoConWhQt8EmWeAcJoerz1UM9ZdasYklZdfV2rmQbA_Xy4G7ebKLURch_4Sv1H5n0PyfUv97XSXnPnVhPqSl3xMLzse0pk/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.25.21.png)
Step3 上傳專案內容到Github:
配置完成後,我們要將這個專案的內容push到Github上。一樣在選單列找到Source Control -> Push...
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifZaFPC3DJADAewANmdTF_2dEPYyt3ok9PakM4IB33r7BJyuPipVTmLhlmFD74OdhB8tPwflcP7wmNn31pk5VNtbcSRrhJKDaXGxVx-9FEPFdoeoGDFv96IGuPJfdqfwTPlYIETyrc-HDJ/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.26.36.png)
選擇Step2最後一步建立的名稱,按Push:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2lgntcyth4v5bhfjoIjGc-6NAjIHiKB9fHPbQ4fGAovRcDJRU6QLsxRST2IKczaoffO7aCTE2FI2a2RR-pBGxOqau3yxD6qqFXDQiBYKNkRuQSmdvct6BtZv0N-tv3bekTYd0dN8pcrid/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.26.46.png)
接著要你輸入Github的帳號密碼作為憑據:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFMuHBJjF2ACtrH8h0dbwpdz7Wplr0sUAEehUdU8jz0AKL7TbH7jlDcyJcx8gQ9W45PBWqRRu0qXtYfpLE6UZ1_DiESCvVfsM32scprQV4IAfCZtIKA2BGZvvv2_2sQd7MwyGirPB0MU3y/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.26.59.png)
按下OK後,大致上就沒什麼問題了。我們回到Github上重新整理網頁,會看到已經幫你上傳第一次修改的內容(即Initial Commit)上去了
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUfaroZi94KjHiD0eUB5Z1cwed-FQPad6PoXAVSuY7878MSkq9THBHFezRS5TOWchve6vk6yxyHtQ47utS1GFKSLUiWOXO33hu7AnB-KdgdAC5OlkgSeV4ggXAm3lEeg_UE4NDdtNtSPD4/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.28.28.png)
Step4 對修改後的程式資料進行Commit:
當我們在這個專案寫一些程式碼要做保存,譬如說我在ViewComtroller.swift的viewDidLoad()函式內寫上一句print("Finish Loading"),要上傳修改的檔案到Github
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs1Tcuyb79yyNbwjiND_7YKZncmU69wCGwR3B-siujd15mGxKqqCMsRtkSmy7E8PkuenV4Kdxtl0IF61qC1xJfjIJbEzL9lhEvcietHcKrhsQ_9XU3ABhwnlkkf9Re_dctFfGnfFBwJI6S/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25887.01.39.png)
所以我們要來建立Commit,也就是把進度提交到Github上。一樣請在Xcode選單列找到Source Control -> Commit...
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf3NlqXfEmOkM6-OlvzAEkV2oZGcgU30at8M-VGVynbrQsASSFzcXPMWRSj4JBRUIf3mFCStJX54Fc94IIZetoFRv2qIt3yXZp3WbbGA0tGUbOACA6iRFLOlgK6Ei2-1kBiqDcDJuwAzSt/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.28.50.png)
接著可以預覽修改前後的結果,並加上註記,同時別忘記最下面Push to remote要勾選,之後Commit files and Push,完成上傳的動作。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTUHfAHSF_c2i1m8p9D30l2JD2uv8-jFSPv4ktQ-_kmLoAsihJxjbyS_VZMTz9eUFFHT7ZChYWg7Tc9pSmMNSr2qG4_OXaTlGpTvlwdlYTaKg33VOFaYOd1HXPZJiUrqFeGOoeyosqJrel/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.29.17.png)
再重新整理網頁,可以看到第二次修改的內容被提交上去了。對於上傳的部分大致就是這樣,其他功能有時間再來寫!
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMzr9Tg7-9O8_n7rHDO1wwTFWI0NaV0ehB5NkBEmNc9LjmlNAbqCb3XE1p1t6Ym8V5rsOIBvBFaLHelQBcJzl-hkN3HIyiv9PARYabkOryYVvyNgw-B4PAqh6KBrrw2f-lbshBY3tIYmdd/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.31.24.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTzInlIKvOv6Bp-gsT7QG5BFSfunbv3n40Fyj1702pHdtrGYYG5Ef6ZdE2DhFQPaSogYrf7lM7jPlMUk1cychrKmdS8IDd2EqolNO9nZOK1hrOe3FxnD-OveCbFJZbZKtCz6AOLvp3JptS/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.05.15.png)
接著填入相關資料跟設定,我將這個示範命名成Calculator_practice:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5ELwwr5NwYZrMIFILNKOD_1B1chc6E70DNDG-oJvnxQJ7c6kzoif9ljcIBTzMG561siZ3pkjJjxx8d-VVILf2TO6EdElTIgbL8Q8vNadP6GCS7yUTyvLzEne1jPvIXl9aJV3CR5FDvEjI/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.07.39.png)
按下Create repository後,我們要在下一頁複製它給你的連結,作為等一下將專案做綁定的動作:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZhQxbyXv3UXYR4NULmnzeMLNYlkng9N1TZOuMZEJuQP4Bm_UWWXrF74HGRYYPpn-ufHqADzwW-0CNcH-EMkyFRLvjZ3la9CDcyafHUMhqMVNB6szoFVT46GcFJWdBRMXdQrJ69Y8QvBt_/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.17.10.png)
接著回到Xcode,在選單列找到Source Control -> Calculator --- Y master -> Configure Calculator...,點進去
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8spVcSFcxdHScTeewatQgfkI-UfTU7Fp9ZZwqlBkYIisNCRQgcfFGqADdHGkIL-Byp4mc0q7x2WTMmh8Z2CL3mDpn63CPlQNQQNXswrMM1M0LPXrxX5Hb5syHjKiDy7BVuYx_C0ehX50_/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.24.25.png)
接著我們要用剛才複製的連結新增一個Remote,點開下方的加號(+),選Add Remote...
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI_oOXbuoxQDXpXbP9cjtp623_ATcErqjOktImf2Mn5OCKpecbVVkOrUypzspAL67C2hZahvbWRbVvxcgd5U5AKahBRk9lGNgNBBjrY4suJRyLwyatNyD_R43P8seIkaV7jw15C_Xh-ja7/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.24.41.png)
接著輸入名稱與貼上連結。完成後按下Add Remote完成設定:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqbOq81OyS7KbLVlWgpryNk9V1wgdec2kujRYtQbFeLaI927SoConWhQt8EmWeAcJoerz1UM9ZdasYklZdfV2rmQbA_Xy4G7ebKLURch_4Sv1H5n0PyfUv97XSXnPnVhPqSl3xMLzse0pk/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.25.21.png)
Step3 上傳專案內容到Github:
配置完成後,我們要將這個專案的內容push到Github上。一樣在選單列找到Source Control -> Push...
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifZaFPC3DJADAewANmdTF_2dEPYyt3ok9PakM4IB33r7BJyuPipVTmLhlmFD74OdhB8tPwflcP7wmNn31pk5VNtbcSRrhJKDaXGxVx-9FEPFdoeoGDFv96IGuPJfdqfwTPlYIETyrc-HDJ/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.26.36.png)
選擇Step2最後一步建立的名稱,按Push:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2lgntcyth4v5bhfjoIjGc-6NAjIHiKB9fHPbQ4fGAovRcDJRU6QLsxRST2IKczaoffO7aCTE2FI2a2RR-pBGxOqau3yxD6qqFXDQiBYKNkRuQSmdvct6BtZv0N-tv3bekTYd0dN8pcrid/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.26.46.png)
接著要你輸入Github的帳號密碼作為憑據:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFMuHBJjF2ACtrH8h0dbwpdz7Wplr0sUAEehUdU8jz0AKL7TbH7jlDcyJcx8gQ9W45PBWqRRu0qXtYfpLE6UZ1_DiESCvVfsM32scprQV4IAfCZtIKA2BGZvvv2_2sQd7MwyGirPB0MU3y/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.26.59.png)
按下OK後,大致上就沒什麼問題了。我們回到Github上重新整理網頁,會看到已經幫你上傳第一次修改的內容(即Initial Commit)上去了
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUfaroZi94KjHiD0eUB5Z1cwed-FQPad6PoXAVSuY7878MSkq9THBHFezRS5TOWchve6vk6yxyHtQ47utS1GFKSLUiWOXO33hu7AnB-KdgdAC5OlkgSeV4ggXAm3lEeg_UE4NDdtNtSPD4/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.28.28.png)
Step4 對修改後的程式資料進行Commit:
當我們在這個專案寫一些程式碼要做保存,譬如說我在ViewComtroller.swift的viewDidLoad()函式內寫上一句print("Finish Loading"),要上傳修改的檔案到Github
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs1Tcuyb79yyNbwjiND_7YKZncmU69wCGwR3B-siujd15mGxKqqCMsRtkSmy7E8PkuenV4Kdxtl0IF61qC1xJfjIJbEzL9lhEvcietHcKrhsQ_9XU3ABhwnlkkf9Re_dctFfGnfFBwJI6S/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25887.01.39.png)
所以我們要來建立Commit,也就是把進度提交到Github上。一樣請在Xcode選單列找到Source Control -> Commit...
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf3NlqXfEmOkM6-OlvzAEkV2oZGcgU30at8M-VGVynbrQsASSFzcXPMWRSj4JBRUIf3mFCStJX54Fc94IIZetoFRv2qIt3yXZp3WbbGA0tGUbOACA6iRFLOlgK6Ei2-1kBiqDcDJuwAzSt/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.28.50.png)
接著可以預覽修改前後的結果,並加上註記,同時別忘記最下面Push to remote要勾選,之後Commit files and Push,完成上傳的動作。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTUHfAHSF_c2i1m8p9D30l2JD2uv8-jFSPv4ktQ-_kmLoAsihJxjbyS_VZMTz9eUFFHT7ZChYWg7Tc9pSmMNSr2qG4_OXaTlGpTvlwdlYTaKg33VOFaYOd1HXPZJiUrqFeGOoeyosqJrel/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.29.17.png)
再重新整理網頁,可以看到第二次修改的內容被提交上去了。對於上傳的部分大致就是這樣,其他功能有時間再來寫!
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMzr9Tg7-9O8_n7rHDO1wwTFWI0NaV0ehB5NkBEmNc9LjmlNAbqCb3XE1p1t6Ym8V5rsOIBvBFaLHelQBcJzl-hkN3HIyiv9PARYabkOryYVvyNgw-B4PAqh6KBrrw2f-lbshBY3tIYmdd/s320/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2017-11-06+%25E4%25B8%258B%25E5%258D%25886.31.24.png)
留言
張貼留言