初學者Git和GitHub簡介(教程)

翻譯&轉載:https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners

 

初學者Git和GitHub簡介(教程)

 

我們 在HubSpot 爲初學者帶來了一個使用git和GitHub的研討會。我首先瀏覽了關於git的基礎知識和背景的幻燈片演示,然後我們分成小組來完成我創建的教程,以模擬在一個大型協作項目上工作。事件發生後我們得到了反饋,這是一個有用的,實用的介紹。因此,如果您也是git的新手,請按照以下步驟輕鬆更改代碼庫,打開拉取請求(PR),並將代碼合併到主分支中。一個重要的git和GitHub術語以粗體顯示,並附有官方git參考資料的鏈接。 

 

第0步:安裝git並創建一個GitHub帳戶 

你要做的前兩件事是安裝git並創建一個免費的GitHub帳戶。

按照此處的說明 安裝git(如果尚未安裝)。請注意,對於本教程,我們將僅在命令行上使用git。雖然有一些很棒的git GUI(圖形用戶界面),但我認爲首先使用git特定命令學習git更容易,然後一旦你對命令更熟悉就嘗試git GUI。 

完成後,在此處創建一個GitHub帳戶  。(帳戶對於公共存儲庫是免費的,但私有存儲庫需要付費。)

 

現在,你將有機會親自使用 Git,並在 Asteroids 版本庫上練習使用這些命令。爲此,必須安裝 Git。如果已安裝 Git,請使用命令 git --version 查看其版本。如果版本爲 1.8 或更高,則可以繼續下一步。否則,強烈建議你進行升級,因爲 Git 在版本 1.8 中添加了許多新功能,而且我們假定你裝有該版本。

如果你還未安裝 Git,或者如果需要升級,現在請按照此 Wiki 頁面上的說明來執行操作。如果遇到問題,請在論壇中發貼求助。

 

第1步:創建一個本地git存儲庫 

使用git在本地計算機上創建新項目時,首先要創建一個新的  存儲庫 (或者通常是“ repo”)。 

要使用git,我們將使用終端。如果您對終端和基本命令沒有太多經驗,請查看本教程  (尤其是“導航文件系統”和“移動”部分)。

首先,打開終端並使用cd(更改目錄)命令移動到要將項目放置在本地計算機上的位置。例如,如果桌面上有“項目”文件夾,則可以執行以下操作:

要在文件夾的根目錄中初始化git存儲庫,請運行git init 命令:  

$ git init

 

第2步:向repo添加新文件

繼續使用您喜歡的任何文本編輯器或運行touch命令將新文件添加到項目中。 

一旦你在包含git repo的文件夾中添加或修改了文件,git就會發現在repo中已經進行了更改。但是,git不會正式跟蹤文件(也就是說,將其置於提交中 - 我們將在下面詳細討論提交),除非您明確告訴它。

創建新文件後,您可以使用該git status命令查看git知道哪些文件存在。

MacdeMacBook-Pro:TangPoets mac$ git status
位於分支 master
您的分支領先 'origin/master' 共 1 個提交。
  (使用 "git push" 來發布您的本地提交)

無文件要提交,乾淨的工作區

這基本上是說,“嘿,我們注意到你創建了一個名爲mnelson.txt的新文件,但除非你使用' git add' 命令,否則我們不會對它做任何事情。”

 

插曲:登臺環境,提交和您

您第一次學習git時最困惑的部分之一是登臺環境的概念以及它與提交的關係。

一個  承諾 是因爲你犯了一個提交最後一次是什麼文件你已經修改的記錄。基本上,您對repo進行了更改(例如,添加文件或修改文件),然後告訴git將這些文件放入提交中。

提交構成了項目的本質,允許您隨時返回項目狀態。

那麼,你如何告訴git將哪些文件放入提交中?這是登臺環境 或  索引的用武之地。如步驟2所示,當您對repo進行更改時,git會注意到文件已更改但不會對其執行任何操作(例如在提交中添加它)。

要將文件添加到提交,首先需要將其添加到登臺環境。爲此,您可以使用  git add<filename> 命令(請參閱下面的步驟3)。

一旦你使用git add命令將你想要的所有文件添加到登臺環境,你就可以告訴git使用git commit 命令將它們打包到一個提交中。 

注意:暫存環境(也稱爲“暫存”)是新的首選術語,但您也可以將其稱爲“索引”。

# 使用git add . 命令將此目錄下新增加的所有文件提交到暫存區中
$ git add .

# 使用git add filename 命令將特定文件提交到暫存區中
$ git add [filename]
# 使用 git commit -m ' your message ' 命令,將修改提交到本地git倉庫
$ git commit -m ' your message ' 

 

第3步:將文件添加到登臺環境

使用git add命令將文件添加到登臺環境。 

如果重新運行git status命令,您將看到git已將該文件添加到登臺環境(請注意“要提交的更改”行)。  

# 使用 git status 查看當前狀態
$ git status

 再次重申,該文件已  不 尚未添加到提交,但它即將被。

 

第4步:創建提交

是時候創建你的第一個提交了!

運行命令 git commit -m "Your message about the commit"

# 使用 git commit -m ' your message ' 命令,將修改提交到本地git倉庫
$ git commit -m ' your message ' 


# 使用 git log 查看剛纔的提交記錄,你會看見如下信息 ,其中HEAD指示當前你的提交狀態,master表示您當前的分支名稱,(origin/master) 表示遠程倉庫當前的提交狀態 ,每個commit後面有個長串的hash值
$ git log 
commit 204f2469f11888cafdbd9db41650da9764c9c149 (HEAD -> master)
Author: miazzy <[email protected]>
Date:   Sat Dec 8 21:24:33 2018 +0800
     新增主分支說明
commit b8ee33f8333ab85697f0e29cea7b2ea390380647 (origin/master)
Author: miazzy <[email protected]>
Date:   Fri Nov 2 12:35:04 2018 +0000
    Add contribution guide


# 使用 git reset hashcode , 回退到先前的提交,這個hashcode就是commit後面的一長串值,不過你不用填全部,只取前面幾個就行了,下面命令,將回退到 (origin/master)的提交狀態上來
$ git reset b8ee33 

提交結束時的消息應該與提交包含的內容相關 - 也許它是一個新功能,也許它是一個錯誤修復,也許它只是修復一個錯字。不要像“asdfadsf”或“foobar”這樣的消息。這讓其他人看到你的承諾讓人傷心。非常,非常,悲傷。

 

第5步:創建一個新分支

現在你已經做了一個新的提交,讓我們嘗試一些更高級的東西。

假設您要創建新功能但擔心在開發功能時對主項目進行更改。這就是git分支的 用武之地。 

分支允許您在項目的“狀態”之間來回移動。例如,如果要向網站添加新頁面,則可以爲該頁面創建新分支,而不會影響項目的主要部分。完成頁面後,您可以  更改從分支合併到主分支中。當你創建一個新的分支時,  Git會  跟蹤你的分支“分支”的提交,因此它知道所有文件背後的歷史。 

假設您在主分支機構並且想要創建一個新分支來開發您的網頁。這是你要做的:跑。此命令將自動創建一個新分支,然後在其上“檢查出來”,這意味着git會將您移動到主分支之外的那個分支。 git checkout -b <my branch name>

運行上述命令後,您可以使用該git branch命令確認您的分支已創建:

# 使用 git branch 分支名稱 創建新的分支,下面命令將創建一個名爲test的分支
$ git branch test

# 使用 git branch 命令,查看當前所有分支信息,即git branch 
$ git branch 

# 使用 git checkout 分支名稱,將切換到制定分支
$ git checkout master  #切換到master分支
$ git checkout test    #切換到剛纔創建的test分支上

旁邊帶有星號的分支名稱表示您在該給定時間指向的分支。 

現在,如果您切換回主分支並進行更多提交,則在將這些更改合併到新分支之前,新分支將不會看到任何這些更改。

 

第6步:在GitHub上創建一個新的存儲庫

如果您只想在本地跟蹤代碼,則無需使用GitHub。但是如果你想與團隊合作,你可以使用GitHub來協同修改項目的代碼。 

要在GitHub上創建新的repo,請登錄並轉到GitHub主頁。您應該看到一個綠色的“+新存儲庫”按鈕: 

Git_101_Screenshot1-2.png

點擊按鈕後,GitHub會要求您爲您的倉庫命名,並提供簡要說明:

Git_101_Screenshot_2-1.png

填寫完信息後,按“創建存儲庫”按鈕創建新的存儲庫。

GitHub將詢問您是否要從頭開始創建新的倉庫,或者是否要添加您在本地創建的倉庫。在這種情況下,由於我們已經在本地創建了一個新的repo,我們希望將它推送到GitHub,所以請按照'....或從命令行推送現有的存儲庫'  部分: 

 (您需要將第一個命令行中的URL更改爲GitHub在此部分中列出的內容,因爲您的GitHub用戶名和repo名稱不同。)

PS:當前您也可以通過搭建GitLab倉庫,來創建一個類似GitHub一樣的運行在企業內部的私有Git倉庫平臺

 

第7步:將分支推送到GitHub

現在我們將把你的分支中的提交送到你的新GitHub倉庫。這允許其他人看到您所做的更改。如果它們已獲得存儲庫所有者的批准,則可以將更改合併到主分支中。

要將更改推送到GitHub上的新分支,您需要運行  GitHub將自動在遠程存儲庫上爲您創建分支: 

git push origin yourbranchname

 您可能想知道上面命令中“origin”字的含義。當您將遠程存儲庫克隆到本地計算機時,git會爲您創建別名。在幾乎所有情況下,這個別名都被稱爲“ 起源”。它本質上是遠程存儲庫URL的簡寫。因此,要將更改推送到遠程存儲庫,您可以使用以下命令:或

 git push [email protected]:git/git.git yourbranchname

git push origin yourbranchname

(如果這是您第一次在本地使用GitHub,它可能會提示您使用您的GitHub用戶名和密碼登錄。)

如果刷新GitHub頁面,您會看到說明您的名字的分支剛剛被推入存儲庫。您還可以單擊“分支”鏈接以查看其中列出的分支。

Git_101_Screenshot2.png

現在單擊上面屏幕截圖中的綠色按鈕。我們打算提出拉動請求

 

第8步:創建拉取請求(PR)

拉取請求(或PR)是一種提醒回購所有者您希望對其代碼進行某些更改的方法。它允許他們在將更改放在主分支上之前檢查代碼並確保它看起來很好。

這是PR頁面在您提交之前的樣子:

Git_101_Screenshot_4.png

 這就是您提交PR請求後的樣子:

Git_101_Screenshot_5.png

 您可能會在底部看到一個顯示“合併拉取請求”的綠色大按鈕。單擊此按鈕表示您將更改合併到主分支中。

請注意,此按鈕不會始終爲綠色。在某些情況下,它會是灰色的,這意味着你面臨着合併衝突。這是當一個文件中的更改與另一個文件中的更改衝突時,git無法確定要使用的版本。你必須手動進入並告訴git使用哪個版本。

有時您將成爲共同所有者或回購的唯一所有者,在這種情況下,您可能不需要創建PR來合併您的更改。但是,創建一個仍然是一個好主意,這樣您就可以保留更新的更新歷史記錄,並確保在進行更改時始終創建新分支。

 

第9步:合併PR

繼續,然後單擊綠色的“合併拉取請求”按鈕。這會將您的更改合併到主分支中。

Git_101_Screenshot_6.png

 當你完成後,我建議你刪除你的分支(太多的分支可能會變得混亂),所以也要點擊那個灰色的“刪除分支”按鈕。

您可以通過單擊新倉庫第一頁上的“提交”鏈接,仔細檢查您的提交是否已合併。

Git_101_Screenshot_7.png

 這將顯示該分支中所有提交的列表。你可以看到我剛剛合併的那個(Merge pull request#2)。

Git_101_Screenshot_8.png

您還可以 在右側看到提交的哈希碼。哈希碼是該特定提交的唯一標識符。它對於引用特定提交和撤消更改(使用git revert <hash code number> 命令回溯)非常有用。

$ git revert HashCodeNumber

 

第10步:在GitHub上更改回到您的計算機

現在,GitHub上的回購看起來與您在本地機器上的回購略有不同。例如,您在分支中進行的並且合併到主分支的提交在本地計算機的主分支中不存在。

爲了獲得您或其他人在GitHub上合併的最新更改,請使用該git pull origin master 命令(在處理master分支時)。

git pull origin master

這將顯示已更改的所有文件及其更改方式。

現在我們可以git log再次使用該命令查看所有新提交。

(您可能需要將分支切換回主分支。您可以使用該git checkout master 命令執行此操作。)

# 切換回主分支
$ git checkout master

 

第11步:享受你的榮耀

您已成功製作PR並將代碼合併到主分支。恭喜!如果您想更深入地潛水,請查看此Git101文件夾中的文件, 以獲取有關使用git和GitHub的更多提示和技巧。 我還建議您花一些時間與您的團隊一起模擬像我們這樣做的小型團隊項目。讓您的團隊使用您的團隊名稱創建一個新文件夾,並添加一些帶有文本的文件。然後,嘗試將這些更改推送到此遠程倉庫。這樣,您的團隊就可以開始更改他們最初未創建的文件並使用PR功能進行練習。並且,使用GitHub上的git blame和git history工具來熟悉跟蹤文件中的更改以及進行這些更改的人員。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章