Git允許您將版本控制嵌入到項(xiàng)目中。通過遍歷提交,您可以跟蹤所做的應(yīng)用程序版本以及在這些提交中所做的更改。
提交到存儲庫時,可以使用命令行。但這有點(diǎn)棘手。因此,您可以使用GUI進(jìn)行相同的操作。沒問題。

先決條件:
- 對Git命令有一些基本了解
術(shù)語
Commit-概念上類似于當(dāng)前項(xiàng)目的保存或快照。您設(shè)置了一條有關(guān)已執(zhí)行的更改的消息,并保存了代碼的修訂版,您可以單擊一次隨時將其還原。提交使您可以隨時回到項(xiàng)目的此(命名)狀態(tài)。
Git:Git是一個分布式版本控制系統(tǒng),用于在軟件開發(fā)過程中跟蹤源代碼的更改。
Index - 這是您要提交到git存儲庫的文件放置位置。也稱為暫存區(qū)。
Repositories - Repositories 是一個文件位置,您可以在其中存儲當(dāng)前項(xiàng)目的所有相關(guān)文件。本地存儲庫位于系統(tǒng)上,遠(yuǎn)程Repositories (通常)位于遠(yuǎn)程計(jì)算機(jī)上。代碼項(xiàng)目可以包含多個帳戶中的多個存儲庫,但通常是單個帳戶中的存儲庫。建議將存儲庫(也稱為存儲庫)保持在1GB以下。
Working Directory - 文件系統(tǒng)中與存儲庫關(guān)聯(lián)的目錄。
Step-by-step
創(chuàng)建一個新的應(yīng)用程序
創(chuàng)建一個新的Single View App。
確保已選中“ 在我的Mac上創(chuàng)建Git”存儲庫復(fù)選框(如果未選中,則可以稍后通過Xcode中的“源代碼控制”菜單添加)。

查看源代碼管理導(dǎo)航器
源代碼管理導(dǎo)航器在屏幕的左側(cè):

在這種情況下,我已經(jīng)擴(kuò)展了文件夾,以便可以看到當(dāng)前的分支。
更改文件
您可以對文件進(jìn)行任何更改。我對ViewController.swift進(jìn)行了一些更改,并多次執(zhí)行了提交過程(如下所述),以創(chuàng)建多個提交。任何更改都會生效,打印命令或注釋或?qū)嶋H工作(無論您選擇什么)。
提交文件
您可以從Xcode屏幕頂部的源代碼控制菜單中選擇提交:

我的選擇文件已在屏幕左側(cè)修改,您可以看到對代碼進(jìn)行了哪些更改。
您甚至可以在屏幕左側(cè)更改代碼(如果進(jìn)行更改,該代碼將被帶入該文件的主編輯器中,因此即使您按取消,也不會丟失任何工作)。
Choosing individual changes
可以通過選擇屏幕中間的數(shù)字來進(jìn)行更改

然后,您可以為每個選項(xiàng)選擇放棄更改,或者

放棄更改也會在源文件中進(jìn)行更改,因此應(yīng)格外小心。
Branches
通常,您將在dev分支上工作,而在master分支上留下了您的App不斷發(fā)布的版本。
Xcode屏幕左窗格中的Source Control導(dǎo)航器使我們可以創(chuàng)建新分支。右鍵單擊提供菜單

然后我們可以從“ master”分支創(chuàng)建功能分支

此功能分支將自動成為當(dāng)前分支,如Source Control導(dǎo)航器中所示

在任何時候,我們都可以通過右鍵單擊切換分支,然后簽出您要使用的分支。請注意,無論何時提交,都將提交到當(dāng)前分支。
同樣,您可以放棄更改(返回到先前的提交)

查看提交
要查看您的提交,您可以單擊您的分支。現(xiàn)在,如果您已經(jīng)進(jìn)行了一些先前的提交,您將在屏幕中央看到它們。

右鍵單擊其中任何一個,您都可以簽出該特定的提交。
查看提交之間的差異
要查看提交之間的差異,請?jiān)谖募z查器中選擇您選擇的文件(在我的情況下,我對ViewController進(jìn)行了更改)。
現(xiàn)在選擇菜單項(xiàng):視圖>版本編輯器>顯示比較視圖

在屏幕底部,您可以選擇要選擇的兩個文件中的哪個

您可以單擊時鐘按鈕,然后選擇要與之比較的提交。這是查看已進(jìn)行更改的好方法!

還有其他選擇。您可以通過“視圖”>“版本編輯器”菜單項(xiàng)查看日志,作者視圖(向您顯示更改的地方)或我們已經(jīng)瀏覽過的比較視圖。替代方法是在比較視圖中選擇選項(xiàng)(在比較視圖中,屏幕右上角的箭頭)。

如果繼續(xù)使用比較視圖,我們可以看到可以回滾到該提交中的特定更改-通過選擇屏幕中間的數(shù)字并選擇放棄更改。

當(dāng)然,如果您進(jìn)行更改,則需要提交這些更改(這將更新您的更改記錄,以便團(tuán)隊(duì)中的每個人都可以看到您所做的更改)。
合并分支
這只有在有遙控器時才有意義。這里的想法是即使您同時也在與其他人一起處理文件。
創(chuàng)建repository
在github.com的右上角(假設(shè)您有一個帳戶:如果沒有,請先創(chuàng)建,然后繼續(xù)閱讀本指南)

創(chuàng)建一個名稱為XcodeRepo的repository:

創(chuàng)建此repository:

將現(xiàn)有repository推送到遠(yuǎn)程存儲庫
我們需要復(fù)制github存儲庫的位置。它顯示在屏幕中央

我的地址是(您的地址會有所不同?。?/p>
您可以右鍵單擊“ Remotes”文件夾并添加現(xiàn)有的遙控器

然后可以將遙控器添加到對話框中-但請記住,您的位置將與我的不同!點(diǎn)擊添加...

然后轉(zhuǎn)到Source Control> Push…

然后,您可以選擇推送到功能分支。這將具有在遠(yuǎn)程存儲庫上創(chuàng)建功能分支的作用。
刷新Web瀏覽器存儲庫,您可以看到features分支已更新。

更改遠(yuǎn)程repository
然后,您可以在瀏覽器中遍歷到ViewController。然后,我們將通過選擇筆圖標(biāo)進(jìn)行更改。

并且在View中確實(shí)加載了新行的更改。我選擇打印“這是新行”

然后使用屏幕底部的按鈕提交更改。這些可以直接提交到功能分支。
更改Xcode源代碼
移到Xcode的ViewController中相同的viewDidLoad函數(shù)。
我們將輸入一個新行,但打印不同的內(nèi)容。

現(xiàn)在,我們可以通過“源代碼”控制菜單來提交此更改。我稱我的提交為我做。
現(xiàn)在,當(dāng)我們嘗試推送到遠(yuǎn)程服務(wù)器時,我們被告知我們的本地repository 已過時。

所以我們就這樣做,并通過Source Contro> Pull
Xcode提供了我們之前進(jìn)行提交時所看到的選項(xiàng)。但是,我們需要選擇是使用左側(cè)(本地更改)還是右側(cè)(遠(yuǎn)程更改)。

我將選擇遠(yuǎn)端(右側(cè))。
然后,拉動按鈕變?yōu)?,進(jìn)行更改。
結(jié)論:總結(jié)變更
然后,您需要提交合并更改,然后將其推送到遠(yuǎn)程。(盡管在這種情況下,我是從遠(yuǎn)程進(jìn)行更改的,所以沒有任何可推送的內(nèi)容。在Xcode中,您不會收到任何消息,因此,以防萬一,習(xí)慣這樣做是一種很好的做法)。
更多信息
這是其中一些功能宣布時的WWDC演示
https://developer.apple.com/videos/play/wwdc2017/405/
翻譯自:https://medium.com/@stevenpcurtis.sc/using-git-source-control-with-xcode-227b4dfe5eb7