App下載

如何開(kāi)始使用 Git 進(jìn)行版本控制

Vasyl Lagutin 2021-09-02 12:05:05 瀏覽數(shù) (4126)
反饋

在本教程中,您將了解什么是版本控制以及如何使用Git為開(kāi)源項(xiàng)目做出貢獻(xiàn)。我們將了解Git的基礎(chǔ)知識(shí),這是任何 Web 開(kāi)發(fā)人員都不可或缺的知識(shí)。

什么是Git?

Git是一個(gè)版本控制軟件,可讓您與其他程序員協(xié)作。Git解決的最大問(wèn)題是它幫助開(kāi)發(fā)人員跟蹤他們正在處理的代碼庫(kù)的不同版本。

在版本控制系統(tǒng)發(fā)明之前,不同的開(kāi)發(fā)人員很難同步他們的工作。

為什么要使用Git?

如果您不使用Git,則創(chuàng)建項(xiàng)目將如下所示:

沒(méi)有 Git 的項(xiàng)目

使用Git,它看起來(lái)更加優(yōu)雅,如下所示:

使用 Git 進(jìn)行項(xiàng)目

如何安裝Git

您可以從官方網(wǎng)站下載并安裝Git。

如果您在Windows上使用它,請(qǐng)確保將Git添加到環(huán)境變量?Path?中。

在 Linux 中,您可以使用以下命令直接從終端安裝它:

sudo apt-get install git

安裝完成后,您可以通過(guò)執(zhí)行以下命令來(lái)檢查Git是否安裝正確:

git --version

如果您獲得當(dāng)前安裝的版本,則安裝成功,您就可以開(kāi)始了。

Git基礎(chǔ)知識(shí)

現(xiàn)在讓我們通過(guò)一些小例子來(lái)學(xué)習(xí)Git的基礎(chǔ)知識(shí)。

首先,讓我們討論如何為代碼創(chuàng)建單一的真實(shí)來(lái)源。

在 Git 中,存儲(chǔ)代碼的地方稱(chēng)為repository。

如何初始化一個(gè)空的 Git 存儲(chǔ)庫(kù)

在項(xiàng)目中使用Git 的第一步是初始化Git存儲(chǔ)庫(kù)。您可以使用以下命令初始化Git存儲(chǔ)庫(kù):

git init

此命令在當(dāng)前目錄中創(chuàng)建一個(gè)子目錄?.git?。它將保存所有內(nèi)部 Git 元數(shù)據(jù),例如提交歷史記錄。

如何在 Git 中暫存更改

我們需要?jiǎng)?chuàng)建一些文件來(lái)暫存更改并進(jìn)行提交(我將在下面討論)。讓我們創(chuàng)建test.txt并在其中插入一些文本。

暫存意味著告訴 Git 您準(zhǔn)備將哪些文件提交(添加)到存儲(chǔ)庫(kù)。當(dāng)您正在進(jìn)行工作并想要提交單個(gè)文件時(shí),它非常有用。

現(xiàn)在,我們已準(zhǔn)備好進(jìn)行更改。您可以單獨(dú)列出要暫存的文件,如下所示:

git add test.txt

一旦我們執(zhí)行了這個(gè)命令,Git 就知道test.txt已經(jīng)準(zhǔn)備好提交了。

或者,您可以使用以下命令暫存所有文件:

git add .

當(dāng)您有一堆文件并且不想鍵入每個(gè)文件名時(shí),它很有用。

如何在 Git 中提交更改

提交更改會(huì)在給定的時(shí)間點(diǎn)創(chuàng)建代碼庫(kù)的快照。您可以稍后返回此快照或與您的隊(duì)友共享,以便他們可以從您的進(jìn)度中積累。

請(qǐng)記住,只有為提交暫存的文件才會(huì)包含在其中。如果你不暫存任何東西,你將無(wú)法提交。

在暫存我們的更改之后,是時(shí)候提交更改了。要提交更改,請(qǐng)使用:

git commit -m "<message describing the change>"

一旦我們執(zhí)行了git commit,我們就完成了對(duì)代碼庫(kù)的更改。

 給代碼寫(xiě)注釋是一種良好的美德,給Git寫(xiě)提交信息也是。在很多集成git的ide中,沒(méi)有填寫(xiě)提交信息是不能進(jìn)行提交的,提交信息也可以幫助你快速定位到你修改的地方,以及做了哪些改動(dòng)。相信我,寫(xiě)了提交信息會(huì)讓你對(duì)你所做的工作有個(gè)更清晰的了解。

如何在 Git 中查看日志

您可能希望查看項(xiàng)目更改的日志。您可以使用以下命令執(zhí)行此操作:

git log

日志如下所示:

Git日志

如您所見(jiàn),有 2 個(gè)提交。第一個(gè)顯示我們已經(jīng)創(chuàng)建了一個(gè)新文件,第二個(gè)描述了對(duì)它的修改。

請(qǐng)記住,Git 不會(huì)自動(dòng)跟蹤您所做的更改。您應(yīng)該手動(dòng)暫存和提交它們。

如何在 Git 中重置和恢復(fù)提交

如果您在提交中犯了錯(cuò)誤,您可能想要撤銷(xiāo)更改。

有兩種方法可以撤消更改:

  1. Reset
  2. Revert

Git重置(Reset)

重置命令的一般語(yǔ)法如下所示: git reset <reset types> HEAD~<number of commits to undo>

最常用的重置類(lèi)型是:

  • --soft :取消提交并保持更改
  • --hard :取消提交和刪除更改

如果我們想從 Git 中取消提交更改,但保留對(duì)代碼的本地修改,我們使用以下命令:

git reset --soft HEAD~1

當(dāng)您不小心暫存了一些不屬于提交的文件時(shí),它很有用。

重置后,您可以暫存必要的更改并提交它們。

Git 還原

您可能還注意到,每個(gè)提交都與一個(gè)hash值相關(guān)聯(lián)。

Git日志

您還可以使用hash值來(lái)撤銷(xiāo)特定的提交:

git revert 8a11c5095f2dcd70b0bc8c66061a1368558a3abf

這與重置不同,因?yàn)樗试S您撤銷(xiāo)在特定提交中所做的更改。

在我們分解命令的時(shí)候,我們發(fā)現(xiàn)git revert <commit hash>在您還原更改時(shí),Git 會(huì)添加一個(gè)額外的提交。

Git 還原提交

如何使用 Git 分支

Git 允許您創(chuàng)建不同的分支。這些分支使您可以將代碼版本的范圍分開(kāi)(例如,錯(cuò)誤修復(fù)、開(kāi)發(fā)、生產(chǎn)等——所有不同的分支)。

要?jiǎng)?chuàng)建新分支,請(qǐng)使用以下命令:

git checkout -b <new branch name>

要切換到現(xiàn)有分支,請(qǐng)刪除-b標(biāo)志并使用現(xiàn)有分支名稱(chēng)而不是新分支名稱(chēng):

git checkout <branch name>

如何合并 Git 分支

在分支中進(jìn)行切換后,您可能希望使用另一個(gè)分支的代碼更新主分支。為此,首先移動(dòng)到要更新的分支并使用以下命令:

git merge <update source branch name>
Git合并

如果一切順利,此操作將在目標(biāo)分支中創(chuàng)建一個(gè)合并提交,并在那里添加所有提交。

如何解決 Git 中的沖突

在合并分支時(shí),可能會(huì)發(fā)生在每個(gè)分支中更新同一文件的相同部分的情況。

在這種情況下,會(huì)發(fā)生沖突,因?yàn)镚it不知道要保留哪些更改以及要放棄哪些更改。所以 Git 創(chuàng)建了一個(gè)沖突消息,并提示你手動(dòng)選擇哪個(gè)分支是正確的。

Git 合并失敗

沖突消息概述了沖突發(fā)生的位置以及當(dāng)前和傳入的更改。

Git 沖突

決定如何解決沖突后,需要添加一個(gè)commit來(lái)解決沖突。

如何使用遠(yuǎn)程 Git 存儲(chǔ)庫(kù)

要與他人協(xié)作,您需要處理遠(yuǎn)程存儲(chǔ)庫(kù)。我們將專(zhuān)注于如何與GitHub合作使用Git,但您可以使用任何其他類(lèi)似的站點(diǎn),如GitLab或gitee。

要與他人協(xié)作,您需要在網(wǎng)站上創(chuàng)建一個(gè)帳戶?,F(xiàn)在您已準(zhǔn)備好為GitHub 上的開(kāi)源項(xiàng)目做出貢獻(xiàn)。

不久前,我發(fā)現(xiàn)在我的編程博客中使用的開(kāi)源 Hugo 主題Papermod中存在一個(gè)小問(wèn)題。

修復(fù)非常簡(jiǎn)單,我想為該項(xiàng)目做出貢獻(xiàn)以改進(jìn)它。

貢獻(xiàn)步驟:

  1. 找到您想要貢獻(xiàn)的存儲(chǔ)庫(kù)?;蛘?,如果您在公司環(huán)境中工作,您的公司可能會(huì)提供一個(gè)存儲(chǔ)庫(kù)供您使用。
  2. fork存儲(chǔ)庫(kù)?,F(xiàn)在你有一個(gè)存儲(chǔ)庫(kù)的副本。
GitHub 分叉

3. 復(fù)制此處找到的克隆鏈接:

GitHub 克隆鏈接

4. 執(zhí)行以下命令:

   git clone <clone link>

將在您的計(jì)算機(jī)上創(chuàng)建存儲(chǔ)庫(kù)的副本。添加上游遠(yuǎn)程,只是源存儲(chǔ)庫(kù)的一個(gè)別稱(chēng),使用:

   git remote add <upstream remote name> <source repository clone link>

現(xiàn)在您可以使用您學(xué)到的Git基礎(chǔ)知識(shí)來(lái)修改代碼。

提交更改后,您可以使用以下命令更新源存儲(chǔ)庫(kù):

   git push origin <branch name to push changes>

現(xiàn)在您可以在源存儲(chǔ)庫(kù)中創(chuàng)建一個(gè)Pull Request,維護(hù)人員將審查并合并您的代碼。

結(jié)論

在本文中,我們學(xué)習(xí)了Git的基礎(chǔ)知識(shí)。現(xiàn)在您擁有了使用版本控制的工具,可以在您自己的項(xiàng)目中使用它,也可以為數(shù)以千計(jì)的在線開(kāi)源項(xiàng)目做出貢獻(xiàn)。

更詳細(xì)的Git使用介紹可以前往git教程進(jìn)行學(xué)習(xí)。


0 人點(diǎn)贊