怎樣在Xcode 8上使用Git實(shí)現(xiàn)源碼控制

這是一篇翻譯作品,怎樣在Xcode 8上使用Git實(shí)現(xiàn)源碼控制

文章原文地址:How To Use Git Source Control with Xcode 8

英文水平有限,錯(cuò)誤之處希望各位海涵!最好還是看原文, 下面開(kāi)始正文。

Update:Updated for Xcode 8 by Richard Critz. Original tutorial by Malek Trablesi and previously updated by Felipe Laso-Marsetti.

不管你是獨(dú)自開(kāi)發(fā)人員或工作在一個(gè)團(tuán)隊(duì),如果你不使用源代碼控制你的項(xiàng)目,你應(yīng)該使用。源碼控制是驚人的,因?yàn)樗梢詭椭愀菀椎鼗謴?fù)到舊版本的代碼,沒(méi)有風(fēng)險(xiǎn)的添加新功能到你的程序,查看你的代碼隨著時(shí)間的推移而改變,或者作為一個(gè)團(tuán)隊(duì)工作。最好的一個(gè)源代碼控制系統(tǒng)建立在Xcode - Git !Git是一個(gè)分布式的版本控制系統(tǒng)最初由Linus Torvalds,Linux內(nèi)核的發(fā)展背后的主要力量。Git的好處是不需要有任何中央存儲(chǔ)庫(kù)——每個(gè)人都可以有他或她自己的可視代碼,更新其他來(lái)源的代碼修改。在本教程中,您將得到可靠的經(jīng)驗(yàn)與Git和直接在Xcode中學(xué)習(xí)如何使用它。

開(kāi)始Gitting

你會(huì)馬上開(kāi)始嘗試,而非漫游在Git的理論中,您將創(chuàng)建一個(gè)新的Xcode項(xiàng)目,嘗試一些你通常會(huì)做日常任務(wù)使用Git源代碼控制。

打開(kāi)Xcode,創(chuàng)建一個(gè)新的單一視圖應(yīng)用程序項(xiàng)目。

填寫(xiě)模板選項(xiàng)如下:

- Product Name: GitUseExample

- Team: Your Apple Developer team if you have one, or None

- Organization Name: Your name

- Organization identifier: As the name indicates, it’s your organization’s identifier, if you have one. - Otherwise, type whatever.

- Language: Swift

- Device family: iPhone

- Use Core Data, Include Unit Tests, and Include UI Tests: not checked

單擊Next。以下對(duì)話框允許您選擇保存您的項(xiàng)目。在MAC上選擇創(chuàng)建git存儲(chǔ)庫(kù)的位置。之后單擊Create。

注意:如果您沒(méi)有看到的復(fù)選框,可以單擊選項(xiàng)按鈕。

Xcode將創(chuàng)建一個(gè)新項(xiàng)目以及新的Git存儲(chǔ)庫(kù)。

所有的源代碼控制系統(tǒng),包括Git,將它們的數(shù)據(jù)存儲(chǔ)到存儲(chǔ)庫(kù),這樣他們就可以管理你的項(xiàng)目版本和跟蹤整個(gè)開(kāi)發(fā)周期的變化。將存儲(chǔ)庫(kù)作為版本的數(shù)據(jù)庫(kù)。

在你的開(kāi)發(fā)項(xiàng)目的過(guò)程中,您將添加文件,修改代碼,多次改變項(xiàng)目。當(dāng)你做了一系列的改變,你的項(xiàng)目處于一個(gè)“known good”狀態(tài)(通常是每天一次或多次),這是一個(gè)好主意,檢查您在存儲(chǔ)庫(kù)中的更改。這給了你一個(gè)“known good”狀態(tài)的記錄,你可以隨時(shí)得到反饋。但是,由項(xiàng)目模板創(chuàng)建的代碼呢?你的項(xiàng)目還只包含模板文件。還沒(méi)有任何的提交是因?yàn)閄code在你創(chuàng)建的時(shí)候已經(jīng)幫你做好了。:]

查看一下,從菜單中選擇 Source Control\History…

在下拉菜單中,請(qǐng)注意有一個(gè)提交以及一些相關(guān)信息,包括提交標(biāo)識(shí)符,日期和時(shí)間,提交人,改變的文件和提交信息。

注意:通常情況下,你可以點(diǎn)擊"Show modified files"按鈕能看到提交內(nèi)容的更多信息。不幸的是,由于在Xcode中有個(gè)bug,這只是工作一段時(shí)間。您將學(xué)習(xí)一種不同的,瀏覽下面更可靠的方法的一些信息。

現(xiàn)在,對(duì)您的項(xiàng)目做一些改變。打開(kāi)AppDelegate文件改變應(yīng)用程序application(_:didFinishLaunchingWithOptions:)如下:

funcapplication(_ application:UIApplication,didFinishLaunchingWithOptions launchOptions:[UIApplicationLaunchOptionsKey:Any]?)->Bool{print("Application did finish launching")returntrue}

保存文件后,您會(huì)注意到,AppDelegate.swift文件名后面有一個(gè)“M”標(biāo)識(shí)。

“M”標(biāo)識(shí)代表”modified“。意味著你已經(jīng)修改了文件,但尚未提交到本地Git存儲(chǔ)庫(kù)。

接下來(lái),打開(kāi)ViewController.swift并添加之后添加以下代碼在viewDidLoad():之后

@IBActionfuncbuttonClicked(_ sender:UIButton){

? ? ? ?print("This is a Git tutorial")

}

現(xiàn)在,打開(kāi)Main.storyboard并從對(duì)象庫(kù)拖拽一個(gè)按鈕到屏幕。隨意改變按鈕的顯示文本如下面屏幕截圖所示。

要做的最后一件事就是連接動(dòng)作和按鈕。單擊黃色圖標(biāo)視圖控制器的視圖控制器的事件。從連接檢查區(qū)(右邊最后一個(gè)選項(xiàng)卡欄),點(diǎn)擊旁邊的圓圈buttonClicked:在接收到的操作面板,并將其拖動(dòng)到按鈕在故事板編輯器。從彈出菜單中選擇Touch Up Inside。

如果你檢查項(xiàng)目導(dǎo)航器,您將注意到所有你修改過(guò)的三個(gè)文件都有一個(gè)“M”標(biāo)識(shí)。

編譯并運(yùn)行,確保項(xiàng)目正常工作。單擊按鈕可以看到控制臺(tái)輸出“This is a Git tutorial“。

w00t——現(xiàn)在你的代碼在一個(gè)“known good”狀態(tài)!可以提交了。

做一些提交--配置

提交文件是很容易的!從菜單中選擇Source Control\Commit…

將顯示一個(gè)新窗口,類(lèi)似于以下圖片:

正如您可以看到的,屏幕分為兩個(gè)分區(qū)。左窗格顯示當(dāng)前狀態(tài)中的文件,以及上次提交后所做的所有更改。由于這是您的第一次提交,您可以看到自項(xiàng)目創(chuàng)建以來(lái)所做的所有更改。

右邊顯示文件之前的更改。

仔細(xì)地觀察本次Xcode提交窗口

左側(cè)面板(1)顯示在您的項(xiàng)目未提交的所有文件的更改。默認(rèn)情況下,Xcode假設(shè)在本次提交中你想包含所有的文件。如果你不想在本次提交中提交某個(gè)文件,取消選中它。正如您將看到的,在這次提交中你也可以決定包含哪些個(gè)別部分。

請(qǐng)注意代碼中藍(lán)色高亮部分。這些表明你已經(jīng)改變的部分。任何改變,即使它只添加或刪除空格,都會(huì)以藍(lán)色高亮的部分跟蹤并標(biāo)記出。

自己嘗試一下。點(diǎn)擊"Cancel"按鈕,打開(kāi)ViewController.swift,在文件的末尾添加一新行。現(xiàn)在選擇Source Control\Commit…。結(jié)果應(yīng)該類(lèi)似如下:


正如您所看到的,Git仔細(xì)跟蹤您在開(kāi)發(fā)過(guò)程中所做的每一個(gè)更改。

在該地區(qū)的兩分區(qū)之間,你所有的變化都會(huì)標(biāo)記在Xcode上(標(biāo)記為“2”上面)

每一個(gè)變化是默認(rèn)被選中。在提交中取消選中可以排除特定的更改。

例如,更改3是不重要的,因?yàn)樗话懊嫣砑拥目招?。取消選中,這個(gè)更改不會(huì)被提交。


另一種排除個(gè)別變化的方法是單擊數(shù)字后面的小三角。會(huì)出現(xiàn)兩個(gè)選項(xiàng):Don’t Commit(或Commit如果改變沒(méi)有選中)和Discard Change。在這種情況下,選擇Don’t Commit。


你完成提交之前,Xcode需要你在屏幕的下方輸入提交信息.這個(gè)信息幫助你更好的理解每次提交的內(nèi)容.

現(xiàn)在點(diǎn)擊Commit 4 Files,恭喜你完成了第一次的提交,如果你返回歷史記錄,你可以在日志中看到新的提交.

這個(gè)簡(jiǎn)單的改變和提交的過(guò)程 就是你90%的時(shí)間所做的事情。相當(dāng)簡(jiǎn)單,對(duì)吧!現(xiàn)在你沒(méi)有理由不這么做吧!:]

注意:眼尖的讀者可以注意到"我只改變了3個(gè)文件.為什么我提交了4個(gè)文件?" Git記錄每一個(gè)文件在你的項(xiàng)目目錄包括所有Xcode后臺(tái)操作的文件。通常情況下,這么做可以準(zhǔn)確的完成你想要的操作。稍后您將看到如何在需要的時(shí)候改變這一行為。

分支

Git支持Xcode的另一個(gè)特點(diǎn)是能夠提交您的更改到一個(gè)特定的分支。但是等等,什么是分支?

分支是保持一組提交在一起的方法。通過(guò)在不同的分支上工作,你可以保持特征分離,減少你完全破壞你的項(xiàng)目的風(fēng)險(xiǎn)。

信不信由你,你已經(jīng)在使用分支了。當(dāng)?shù)谝粋€(gè)庫(kù)被創(chuàng)建時(shí),Git也在該庫(kù)中創(chuàng)建一個(gè)名為“master”的分支。到目前為止,你所有的工作都在主分支。

主分支應(yīng)始終保留項(xiàng)目的主要副本。您使用其他分支作為一種方法來(lái)存儲(chǔ)正在進(jìn)行中并尚未發(fā)布的代碼。您還可以使用它們來(lái)做可能永遠(yuǎn)不會(huì)發(fā)布實(shí)驗(yàn)存儲(chǔ)。

例如,你在你的APP中準(zhǔn)備添加一個(gè)新的地圖功能,但它并沒(méi)有為生產(chǎn)做好準(zhǔn)備。

為了進(jìn)行模擬,創(chuàng)建一個(gè)新的派生類(lèi)繼承自NSObject并命名mapforitinerary。你的項(xiàng)目可能看起來(lái)像這樣:


新文件MapForItinerary.swift文件名后面顯示標(biāo)識(shí)"A",表明這是一個(gè)沒(méi)有提交到數(shù)據(jù)庫(kù)的新文件。

從菜單中選擇Source Control\Commit…


如果你選擇一個(gè)顯示狀態(tài)為"A"的文件,可以看出Xcode不能提供任何早期的版本與其對(duì)比。這是因?yàn)檫@個(gè)文件之前沒(méi)有被提交到存儲(chǔ)庫(kù),所以沒(méi)有可比較的內(nèi)容。

添加地圖功能到您的應(yīng)用程序代表在您的代碼中有一個(gè)大的改變。這完全符合使用分支的情況。這將有助于隔離風(fēng)險(xiǎn),以防新的地圖代碼中有什么問(wèn)題。

單擊“Cancel”代替“Commit 3 Files”按鈕。從菜單中選擇Source Control\GitUseExample\New Branch…注意菜單中當(dāng)前的分支-master


Xcode詢問(wèn)你給新分支命名

分支命名map_feature,之后點(diǎn)擊Create。

Xcode創(chuàng)建新分支,切換到它。您可以通過(guò)打開(kāi)源代碼管理菜單來(lái)驗(yàn)證這一點(diǎn)。


選擇Source Control\Commit…,輸入提交信息,選中Commit 3 Files.


請(qǐng)注意,在項(xiàng)目導(dǎo)航器中的文件旁邊的所有狀態(tài)字母已被清除。這意味著您不再有任何未提交的更改。


觀察你的分支,從菜單中選擇Source Control\GitUseExample\Configure GitUseExample…

在結(jié)果區(qū)中中選擇Branches選項(xiàng)。

回退

你正在你項(xiàng)目的最新版本上工作,實(shí)現(xiàn)最新的有趣的功能。你休息一下,吃點(diǎn)點(diǎn)心,然后突然靈機(jī)一動(dòng),找到一種更好的方法來(lái)實(shí)現(xiàn)它。在這一點(diǎn)上,您可能希望從源代碼管理恢復(fù)最后一次修訂,并重新開(kāi)始。


Git輕松地做到了這一點(diǎn)!:]

打開(kāi)Main.storyboard,并且從對(duì)象庫(kù)中拖拽一個(gè)新的視圖控制器到畫(huà)布上。


打開(kāi)MapForItinerary.swift文件并且添加方法sayHello().? ??

classMapForItinerary:NSObject{funcsayHello(){print("Hello from MapForItinerary")}}

注意,修改的文件的狀態(tài)已經(jīng)改變?yōu)椤?b>M”,這意味著文件本地修改和等待上傳。

在這一點(diǎn)上,你可以選擇性的丟棄更改你的項(xiàng)目。選擇Main.storyboard在項(xiàng)目導(dǎo)航欄,然后選擇菜單Source Control\Discard Changes in “Main.storyboard”…


Xcode將提示您確認(rèn)你真的想放棄所有更改的文件。


點(diǎn)擊"Discard Changes".您應(yīng)該看到視圖控制器(和黃色警告圖標(biāo))你剛才添加的消失了!這對(duì)修改出現(xiàn)問(wèn)題的代碼非常有用,你想回到上一個(gè)正常工作的代碼版本。

除了丟棄整個(gè)文件的更改,你也可以丟棄局部的更改。

MapForItinerary.swift仍有"M"標(biāo)識(shí)。選擇菜單Source Control\Commit… 單擊旁邊有向下箭頭更改數(shù)字并選擇Discard Change:


哇! 改變完成。左側(cè)沒(méi)有什么東西可提交,選擇"Cancel"關(guān)閉提交窗口。

既然你已經(jīng)嘗試了丟棄更改,你可能會(huì)想這和早些時(shí)候你選擇不提交選項(xiàng)之間的區(qū)別是什么。

雖然這兩個(gè)選項(xiàng)都會(huì)導(dǎo)致存儲(chǔ)庫(kù)中沒(méi)有記錄更改,但確實(shí)存在很大的差異:

·?Don’t Commit 讓代碼跳過(guò)提交,但它仍然在本地源代碼中。

·?Discard Changes 不僅跳過(guò)更改,而且會(huì)把它從本地源代碼中刪除。

時(shí)間旅行

丟棄更改是一個(gè)很好的方法來(lái)恢復(fù)正常工作代碼并且節(jié)省您的時(shí)間。然而,在某些情況下它可能有些局限。

Git允許您保存項(xiàng)目的多個(gè)修訂版本,其中每個(gè)修訂版本都有特定的更改。這些都存儲(chǔ)到由Git管理的存儲(chǔ)庫(kù)中

如果選擇丟棄對(duì)文件的更改,Git將恢復(fù)文件到上一個(gè)提交版本,并且只保留最后一個(gè)。
那就是局限所在。

隨著時(shí)間的推移,您的項(xiàng)目庫(kù)將包含反映您開(kāi)發(fā)歷史的多次修訂。假設(shè)您希望還原到特定文件的第一個(gè)或第二個(gè)版本。沒(méi)有其他辦法,只是通過(guò)丟棄更改。不要失望,無(wú)論如何,Xcode和Git很容易做到。

在項(xiàng)目導(dǎo)航欄中選擇ViewController.swift文件,然后選擇菜單View\Version Editor\Show Comparison View 或者你也可以點(diǎn)擊第三個(gè)按鈕在編輯部在Xcode窗口右上方的工具欄。


版本編輯器分為兩個(gè)區(qū)域,如下所示:

這允許您比較選定文件的兩個(gè)修改版本,并與提交窗口中的比較視圖完全一致。
默認(rèn)情況下,您當(dāng)前的源文件顯示在左邊,而最近的修訂存儲(chǔ)在存儲(chǔ)庫(kù)- Git調(diào)用這個(gè)HEAD-顯示在右邊。

若要從存儲(chǔ)庫(kù)中顯示早期版本,請(qǐng)單擊右窗格底部的時(shí)鐘圖標(biāo)(紅色下方標(biāo)記),然后選擇較早的修訂版本

選擇更改之前的版本如下圖所示。你看到的確切信息將不同于截圖。

現(xiàn)在,回退文件版本,只需單擊比較區(qū)域箭頭旁邊的更改號(hào)碼,選擇丟棄更改。很容易吧!:]

一旦你恢復(fù)到早期版本,你將需要提交這個(gè)“new”版本的文件作為最新的?,F(xiàn)在就去做。

你怎么知道哪一個(gè)早期的提交是你想要的?雖然你可以使用你先前學(xué)到的歷史命令,但有一個(gè)更好的方法。單擊并按住“Version Editor”按鈕并選擇Log。還可以從菜單中選擇“View\Version Editor\Show Log View”.

Xcode以列表的形式包含當(dāng)前文件的提交更改。列表中每個(gè)提交包含提交標(biāo)識(shí)符。

這些標(biāo)識(shí)符匹配你早期版本的更改記錄列表。

還可以單擊“Show modified files”以更詳細(xì)地查看代碼變化,試一下吧!

另一個(gè)在項(xiàng)目中有用的功能被稱(chēng)為Blame View--責(zé)任區(qū),這個(gè)功能可以查看項(xiàng)目文件中每一行代碼都是誰(shuí)提交的。

切換責(zé)任區(qū),點(diǎn)擊"Version Editor"按鈕,然后選擇"Blame",你也可以選擇菜單"View\Version Editor\Show Blame View"

你的屏幕看起來(lái)像這樣:

要查看有關(guān)更改的詳細(xì)信息,請(qǐng)按日期旁邊的“i”按鈕。會(huì)彈出包含提交人,提交信息,提交標(biāo)識(shí)符的彈出框。它也有一個(gè)按鈕來(lái)顯示在提交中修改的所有文件,還有一個(gè)打開(kāi)當(dāng)前文件的比較視圖的按鈕,將本次提交與之前的提交進(jìn)行比較。


合并分支

你已經(jīng)知道Git允許你在多個(gè)被稱(chēng)為分支的修改流上工作。您還了解到,在主分支以外的分支上完成所有的開(kāi)發(fā)是很好的做法。
那么,當(dāng)你完成一個(gè)功能的開(kāi)發(fā)并想發(fā)布它時(shí),你會(huì)做什么?簡(jiǎn)單的!將開(kāi)發(fā)分支合并到主分支中。

您的新地圖功能尚未完成,但你們的設(shè)計(jì)師要求在主界面上添加另一個(gè)標(biāo)簽。為了實(shí)現(xiàn)這一點(diǎn),你將需要離開(kāi)"map_feature"分支,從狀態(tài)為"known good"的主分支上創(chuàng)建一個(gè)新的分支。

從菜單中選擇Source Control\GitUseExample\Switch to Branch…


從可用分支的列表,選擇"master"然后點(diǎn)擊"Switch"

重要的是要確保你從正確的“known good”狀態(tài)開(kāi)始你的新分支。

接下來(lái)選擇Source Control\GitUseExample\New Branch…


命名為new_label并點(diǎn)擊創(chuàng)建

為了驗(yàn)證你是在"new_label"分支上工作的,點(diǎn)擊"Source Control",查看工作副本的名字。

現(xiàn)在可以添加你的設(shè)計(jì)師要求添加新的標(biāo)簽了。

切換回標(biāo)準(zhǔn)編輯器視圖,選擇Main.storyboard文件,并在主視圖上拖拽一個(gè)UILabel

構(gòu)建和運(yùn)行,以確保一切正常,然后提交您的更改到資源庫(kù)中。一定要添加一個(gè)提交消息。

現(xiàn)在切換到主分支,再次運(yùn)行應(yīng)用程序。正如預(yù)期的那樣,你新加入的UILabelb不在這個(gè)分支。最后的工作是將新分支合并到主分支上。

從菜單中選擇Source Control\GitUseExample\Merge from Branch…

從可用的分支列表中,選擇new_label,然后點(diǎn)擊Merge.

將出現(xiàn)合并窗口,允許您控制合并過(guò)程。合并源(“從”合并的分支)將出現(xiàn)在右邊。您的當(dāng)前源,如由合并修改的,將出現(xiàn)在左側(cè)。使用屏幕底部的按鈕來(lái)控制合并的方向。就像這樣一個(gè)簡(jiǎn)單的合并,Xcode的默認(rèn)設(shè)置是正確的。



最后,單擊Merge按鈕開(kāi)始合并

如果一切順利的話,你應(yīng)該看到變化(UILabel)從新的分支出現(xiàn)在用戶界面,當(dāng)你選擇main.storyboard或當(dāng)你運(yùn)行你的應(yīng)用程序?,F(xiàn)在您的更改已經(jīng)合并到主分支!使用一個(gè)方法查看您的提交歷史,您學(xué)會(huì)驗(yàn)證此更改出現(xiàn)在歷史記錄中。

忽略生成的文件

回到第一次的提交你可以看到,除了你的源文件,Git記錄Xcode管理的文件版本,這很重要,因?yàn)檫@些文件與你的源文件一樣是你的項(xiàng)目所必需的。你需要它們重建你的應(yīng)用程序或與他人合作。

然而.作為它的工作,對(duì)于每次版本的構(gòu)建,Xcode也會(huì)生成其他的文件.保存這些Xcode自動(dòng)生成的文件是不重要的.實(shí)際上,保存它們會(huì)導(dǎo)致Git做不必要的工作,并使您更難在提交記錄中發(fā)現(xiàn)重大變化。

Git提供了一種機(jī)制,忽略這些文件:適當(dāng)命名的 .gitignore文件。在其命名規(guī)則初期MacOS視它為隱藏文件,當(dāng)你通過(guò)Xcode或者Finder查看你的項(xiàng)目時(shí)是看不到的.但是,不要擔(dān)心,Git會(huì)發(fā)現(xiàn)并正常使用它.

與其自己做?.gitignore文件,還不如從gitignore.io下載

首先,打開(kāi)一個(gè)終端窗口并輸入以下命令。你只需要做一次,而不是每一個(gè)項(xiàng)目都做一次。

$ git config --global alias.ignore '!gi() { curl -L -s https://www.gitignore.io/api/$@ ;}; gi'

現(xiàn)在,為任何一個(gè)項(xiàng)目使用Git,使用下面的命令行:

cd <directory where your project is stored>

git ignore swift,macos >.gitignore

git ignore swift,macos >.gitignore

git commit -m "Add .gitignore file"

下載最新的 .gitignore配置文件,在macOS用swift寫(xiě)代碼. 您的終端會(huì)話應(yīng)該看起來(lái)類(lèi)似:


注意為你存儲(chǔ)庫(kù)添加的.gitignore文件用Git記錄,因?yàn)樗峁┑倪^(guò)濾也是你的項(xiàng)目的重要組成部分。

Xcode and GitHub

到目前為止,您所做的所有工作都使用了您的計(jì)算機(jī)上保存的本地存儲(chǔ)庫(kù)。GitHub網(wǎng)站允許你發(fā)布你的項(xiàng)目到一個(gè)遠(yuǎn)程存儲(chǔ)庫(kù)保存在Github服務(wù)器。這樣很方便,因?yàn)樗试S您輕松地與他人共享您的代碼和工作作為一個(gè)項(xiàng)目組。

如果你沒(méi)有一個(gè)Github帳號(hào),去GitHub申請(qǐng)一個(gè)吧。

然后,創(chuàng)建GitHub上的項(xiàng)目庫(kù),點(diǎn)擊GitHub網(wǎng)站的右上角的"+"按鈕,選擇New repository.

GitHub將呈出現(xiàn)如下界面:

填寫(xiě)倉(cāng)庫(kù)名稱(chēng)并點(diǎn)擊Create repository.GitHub將創(chuàng)造你的存儲(chǔ)庫(kù)并進(jìn)入快速設(shè)置界面。您需要保存您的庫(kù)的HTTPS網(wǎng)址到剪貼板。確保HTTPS按鈕被選中,然后單擊剪貼板圖標(biāo)。

選擇Xcode的菜單欄Source Control\GitUseExample\Configure GitUseExample…,選擇Remotes選項(xiàng),點(diǎn)擊"+"按鈕,然后選擇Add Remote….

遠(yuǎn)程的名稱(chēng)將默認(rèn)為“origin”.粘貼你的GitHub HTTPS字符串地址。點(diǎn)擊Add Remote.

最后,點(diǎn)擊"Done".你已經(jīng)準(zhǔn)備好發(fā)布你項(xiàng)目到GitHub上!

選擇菜單欄Source Control\Push… Xcode會(huì)提示你遠(yuǎn)程的名字和分支。由于只有一個(gè)遠(yuǎn)程配置,會(huì)是默認(rèn)配置。

點(diǎn)擊"Push",Xcode將提示您重新登錄。

輸入賬戶并點(diǎn)擊"OK".

Xcode會(huì)把你的賬戶保存在macOS的鑰匙串里.你可以在Xcode Preferences里的Accounts選項(xiàng)管理他們.稍等一會(huì),Xcode就是推送成功.檢查你的GitHub頁(yè)面驗(yàn)證您的文件存在。

Note:If you have set up your SSH credentials on GitHub (seeGitHub SSH Instructions), Xcode supports using SSH to connect to GitHub. Just use the SSH connection information instead of the HTTPS string when adding your remote.

現(xiàn)在是時(shí)候?qū)δ愕捻?xiàng)目做最后的修改了。打開(kāi)ViewController.swift并改變buttonClicked()方法

@IBActionfuncbuttonClicked(_ sender:UIButton){print("You finished!")}

選擇菜單欄?Source Control\Commit… 輸入提交信息并選中左下角的Push to remote:選擇框,因?yàn)槟阒挥幸粋€(gè)遠(yuǎn)程配置,默認(rèn)將是正確的。

選擇Commit 1 File and Push.等一會(huì),Xcode會(huì)完成提交.在你的GitHub頁(yè)面尋找你的新提交的內(nèi)容。

成功! :]

最后說(shuō)一句.能力一般,水平有限,歡迎指正,有問(wèn)題可以發(fā)郵件到1432103394@qq.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容