先來(lái)看看什么是代碼遠(yuǎn)程托管: 其實(shí)就是將我們的代碼上傳到GitHub的服務(wù)器上, 供別人下載, 當(dāng)然了也可以在團(tuán)隊(duì)開發(fā)的時(shí)候, 使用GitHub進(jìn)行代碼合并工作, 下面我們進(jìn)入正題
(已經(jīng)有遠(yuǎn)程倉(cāng)庫(kù)的網(wǎng)址, 請(qǐng)直接跳轉(zhuǎn)到2.0步驟查看)
(工程是從遠(yuǎn)程倉(cāng)庫(kù)拉取下來(lái)的, 并且寫好了代碼后, 不會(huì)進(jìn)行拉取/推送, )
忠告: 進(jìn)行拉取, 推送之前最好備份一下你的代碼
Git方式 -> 步驟3.0
SVN方式 -> 步驟4.0
Git回滾->? 步驟5.0
SVN回滾-> 步驟6.0
步驟1.0 創(chuàng)建遠(yuǎn)程倉(cāng)庫(kù)
這里我們使用https://github.com(github現(xiàn)在支持GIT和SVN2種訪問方式) (可能公司有自己的服務(wù)器, 會(huì)給你一個(gè)網(wǎng)址)(如果想只是使用SVN的, 推薦一個(gè)svn999.com)
1.1 我們需要注冊(cè)

1.1注冊(cè)登錄.png
約束比較多, 賬號(hào)和郵箱啊, 密碼之類的, 如果有一個(gè)不符合人家規(guī)定, 就會(huì)跳轉(zhuǎn)到一個(gè)頁(yè)面, 會(huì)告訴你哪個(gè)不行, 修改之后, 顯示對(duì)號(hào)了, 之后繼續(xù)sign up(注冊(cè)), 然后注冊(cè)好之后, 重新進(jìn)入到https://github.com

1.2登錄成功后.png
1.2 創(chuàng)建遠(yuǎn)程倉(cāng)庫(kù)
然后點(diǎn)擊右上角+號(hào), 新建個(gè)項(xiàng)目(遠(yuǎn)程倉(cāng)庫(kù))

1.3新建項(xiàng)目(遠(yuǎn)程倉(cāng)庫(kù)).png

1.4新建項(xiàng)目.png
獲取遠(yuǎn)程倉(cāng)庫(kù)的網(wǎng)址

1.5獲取倉(cāng)庫(kù)網(wǎng)址.png
2.0 在Xcode中進(jìn)行代碼克隆(下載)到本地

2.0打開Xcode準(zhǔn)備拉取.png
然后輸入遠(yuǎn)程倉(cāng)庫(kù)的網(wǎng)址

2.1輸入遠(yuǎn)程倉(cāng)庫(kù)的網(wǎng)址.png
設(shè)置和遠(yuǎn)程倉(cāng)庫(kù)交互的方式(用GIT還是SVN)(根據(jù)你遠(yuǎn)程倉(cāng)庫(kù)網(wǎng)址的類型, 如果是既支持GIT也支持SVN那就無(wú)所謂, 但是只支持其中一種方式, 那就不要選錯(cuò)了, 當(dāng)然了, 賬號(hào)密碼也是要對(duì)應(yīng)哪個(gè)網(wǎng)站, 或者服務(wù)器的)

2.2設(shè)置和遠(yuǎn)程倉(cāng)庫(kù)交互的方式(用GIT還是SVN).png
如果點(diǎn)擊Next錯(cuò)誤了: 看看是不是這個(gè)

設(shè)置本地倉(cāng)庫(kù)位置

2.3設(shè)置本地倉(cāng)庫(kù)的位置.png

2.4進(jìn)行克隆(下載).png
成功后, 就會(huì)自動(dòng)打開你克隆(下載)的工程

2.5 下載成功.png
步驟3.0 如何使用Xcode自帶的Git進(jìn)行代碼的提交, 拉取, 推送
壯士:這里有碗湯你先喝了, 我們先來(lái)看下原理:參考這個(gè)鏈接:http://www.itdecent.cn/p/0582e1908c22可見, 我們需要做以下3步:
Commit操作:
解釋: 先把Xcode工作區(qū)(你寫的代碼), 提交到本地倉(cāng)庫(kù)),
Pull操作:
解釋: 然后從遠(yuǎn)程倉(cāng)庫(kù)拉取代碼(可能別人剛傳了別人寫的, 你需要拉下來(lái)和你新寫的合并一下), 然后在本地倉(cāng)庫(kù)合并后, 保證編譯, 運(yùn)行無(wú)錯(cuò)誤后.
Push操作:
解釋: 在進(jìn)行將本地倉(cāng)庫(kù)你的代碼推送到遠(yuǎn)程倉(cāng)庫(kù)上面.讓團(tuán)隊(duì)里別的人可以進(jìn)行下載
3.1 Commit操作
打開工程后, 看這里有個(gè)Source Control

點(diǎn)開我們來(lái)說(shuō)一下

然后當(dāng)你修改了代碼后,? 修改過(guò)的文件都是顯示M

然后我們點(diǎn)擊Source Control 菜單, 選擇Commit(提交, 把Xcode工作區(qū)的變更提交到本地倉(cāng)庫(kù))


然后點(diǎn)擊commit按鈕之后,? M標(biāo)志沒了就代表提交變更已經(jīng)到本地倉(cāng)庫(kù)啦, 但是不是遠(yuǎn)程倉(cāng)庫(kù)哦, 別人還不能拿到你新寫的代碼!!(慶祝一下, 成功一小步)

'
3.2 Pull(拉取)操作
點(diǎn)開Source Control 然后執(zhí)行Pull操作

這個(gè)時(shí)候, 可能會(huì)出現(xiàn)警告提示, 如圖:(如果沒出現(xiàn)直接略過(guò))
// 你有本地變更沒有提交到本地倉(cāng)庫(kù), 不讓你去拉取代碼

但是明明我們都Commit過(guò)了啊, 這是因?yàn)? 有一個(gè)配置文件實(shí)時(shí)的刷新(就是剛才沒勾選那個(gè)), 那么我們只有刪除它啦!
刪除這個(gè)配置文件
進(jìn)入終端
利用cd命令進(jìn)入到我們工程所在的文件夾, 如圖:

如圖:

然后運(yùn)行命令:
解釋下參數(shù)
git rm --cached 工程名.xcodeproj/project.xcworkspace/xcuserdata/電腦用戶名.xcuserdatad/UserInterfaceState.xcuserstate
例如:
git rm --cached php.xcodeproj/project.xcworkspace/xcuserdata/lidongxu.xcuserdatad/UserInterfaceState.xcuserstate
然后輸入完命令, 回車運(yùn)行

然后重新拉取, (或者你沒出現(xiàn)警告, 應(yīng)該是這樣的)

點(diǎn)擊Pull按鈕之后, 就會(huì)把遠(yuǎn)程倉(cāng)庫(kù)的代碼拉到本地了, 然后運(yùn)行下吧看看有沒有錯(cuò)誤啊, 沖突之類的(如果有沖突, 就是商量下, 用誰(shuí)的)


然后繼續(xù)點(diǎn)擊Pull按鈕拉取代碼
步驟3.3 Push(推送代碼)到遠(yuǎn)程服務(wù)器
還是一樣, 打開Source Control 然后點(diǎn)擊Push
然后點(diǎn)擊Push


然后點(diǎn)擊Push按鈕, 如果你是第一次配置, 可能會(huì)讓你輸入遠(yuǎn)程倉(cāng)庫(kù)網(wǎng)站對(duì)應(yīng)的登錄賬號(hào)和密碼

然后顯示正在change, 等待一會(huì)兒

下面這個(gè)會(huì)一閃, 然后自己消失的哦!

然后怎么看我們是否正在把本地倉(cāng)庫(kù)代碼推送到了遠(yuǎn)程服務(wù)器上, 看一下我們對(duì)應(yīng)的網(wǎng)站

以上就是我們Git的基本使用過(guò)程
4.0 SVN使用方式
先來(lái)解釋下Source Control 里不同的地方

然后現(xiàn)在我們編寫完代碼之后:

4.1 我們要拉取(update)遠(yuǎn)程倉(cāng)庫(kù)的代碼
如果你不拉取, 就直接推送, 很可能把遠(yuǎn)程倉(cāng)庫(kù)里別人代碼覆蓋掉, 所以一定要先拉取

4.2然后確認(rèn)沒有錯(cuò)誤之后, 然后提交(Commit)到遠(yuǎn)程倉(cāng)庫(kù),
這個(gè)Commit跟Git中的可不一樣哦!

4.3彈出這個(gè)界面, 選擇你要推送的代碼

這樣, 我們SVN就基本使用過(guò)程
有的時(shí)候, 我們代碼合亂了, 或者需要穿越回到昨天的那個(gè)代碼樣式怎么辦? 不要怕. 代碼版本管理就是為了方便我們的. 往下看
5.0 Git回滾本地代碼
進(jìn)入到我們本地倉(cāng)庫(kù)目錄下
cd 倉(cāng)庫(kù)文件夾路徑

然后我們可以看一下, 項(xiàng)目中代碼現(xiàn)在是什么樣子(這里就隨便寫了2個(gè)變量)

然后提交到本地倉(cāng)庫(kù), 拉取代碼合并, 推送到遠(yuǎn)程服務(wù)器, 現(xiàn)在遠(yuǎn)程服務(wù)器有版本0, 版本1 和版本2的代碼了(本地是版本2的), 現(xiàn)在我想
讓本地代碼進(jìn)行回滾.
5.1 查看我們提交的記錄
輸入命令? git log --pretty=oneline

5.2 git reset --hard HEAD^
HEAD^回滾上次提交 (取消剛才的提交)
HEAD^^ 回滾到上次的上次的提交
輸入命令運(yùn)行.
HEAD is now at d490df9 (本地代碼變成上次提交的時(shí)候的樣子了)


6.0 SVN回滾代碼
現(xiàn)在代碼是這樣的.

6.1 先進(jìn)入到本地倉(cāng)庫(kù)下

6.2 查看我們的提交記錄
輸入命令 svn log

每個(gè)r后面的數(shù)字 就是一次提交的記錄
6.3 回滾到某次提交的時(shí)候的代碼的樣子
svn update -r 數(shù)字? (數(shù)字就是那個(gè)6 5 4 3 2 1)
根據(jù)自己電腦上的數(shù)字自己選擇
這里我們回滾到最初的狀態(tài)

完成之后打開代碼查看

文/M_Lee(簡(jiǎn)書作者)
原文鏈接:http://www.itdecent.cn/p/300f8fd043c5
著作權(quán)歸作者所有,轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),并標(biāo)注“簡(jiǎn)書作者”。