十分鐘帶你整理Git和Github的詳細入門教學

2022-01-04 19:01:30
本篇文章給大家帶來了Git和Github詳細入門教學,Git是目前世界上最先進的分散式版本控制系統,Github是一個為使用者提供Git服務的網站,希望對大家有幫助。

01.Git概述

1.Git是目前世界上最先進的分散式版本控制系統

解決的問題:
記錄了每次修改的:版本,內容,操作使用者,修改時間,檔名等。

2.Git和Github的區別
Git是一個分散式版本控制系統,簡單的說就是一個軟體,用於記錄一個或若干檔案內容變化,以便來查閱特定版本修訂情況的軟體。

Github是一個為使用者提供Git服務的網站,簡單說就是一個可以放程式碼的地方(也可以放其他內容)。Github除了提供管理Git的web介面外,還提供了訂閱、關注、討論組】線上編輯器等豐富的功能。

Git 並不像 SVN 那樣有個中心伺服器。

目前我們使用到的 Git 命令都是在本地執行,如果你想通過 Git 分享你的程式碼或者與其他開發人員合作。 你就需要將資料放到一臺其他開發人員能夠連線的伺服器上。本例使用了 Github 作為遠端倉庫

Git的安裝

02.Git的本地倉庫操作

1.工作流程
Git本地操作的三個區域:
在這裡插入圖片描述
工作流程:
在這裡插入圖片描述

暫存區:相當於購物車存放要購買的物品最後一起付款。

2.本地倉庫操作
什麼是倉庫?
倉庫又叫做版本庫,英文名 repository,我們可以簡單的理解成是一個目錄,用於存放程式碼,這個目錄裡面所有的檔案都可以被Git管理起來,每個檔案的修改,刪除等操作Git都可以跟蹤到。

在安裝好後首次使用需要先進行全域性設定:

1.點選」Git Bash Here "以開啟Git命令列視窗:

$ git config --global user.name "使用者名稱"
$ git config --global user.email "郵箱地址"

設定好使用者資訊,當進行專案修改的時候就會記錄使用者名稱

2.建立本地倉庫
當我們需要讓Git 去管理某個新專案/已存在的專案的時候,就需要建立倉庫。

建議使用空目錄學習Git,因為操作失誤產生不必要的錯誤。目錄名儘量使用英文名。

3.建立目錄

$ mkdir  目錄名

也可以直接在本地以新建的方式建立。
4.在命令列中進入專案目錄 pre_git

$ cd 目錄名

5.Git倉庫的初始化
即讓Git知道需要他來管理這個目錄

$ git init

執行後,開啟這個專案目錄下,點選隱藏目錄你會發現多了一個.git資料夾。不能刪除,也不能隨意更改。

到這裡就可以在裡面進行開發。
6.Git常用指令操作
檢視當前工作狀態:

$ git status

作用:當我們忘記專案做到哪裡的時候,比如上個廁所回來,開個會回來等。可以使用這個命令來判斷下一步要幹嘛。

7.可以在專案目錄中,進行開發

8.將工作區檔案新增到快取區:

說明:git add 指令,可以新增一個檔案,也可以同時新增多個檔案。
語法一:$ git add 檔名
語法二:$ git add 檔名1 檔名2 檔名3 ......
語法三:$ git add .    【新增當前目錄到快取區中】

9.提交至版本庫

$ git commit -m "註釋內容"

如果建立了新的檔案,從add開始,重複上述操作即可。

如果修改了已提交的檔案內容,再從add開始重新提交就好了。

這裡的提交等操作只是提交到Git本地倉庫。

Git的版本回退操作

版本回退分為兩個步驟:
1.首先檢視版本,確定需要回到的時刻點
指令:

$ git log
$ git log --pretty=oneline

第二種指令:簡化了資訊。
2.回退操作:
指令:

$ git reset --hard 提交編號

執行操作後,專案目錄中的檔案會回到指定的時刻。

回到過去之後,這時我又想回到之前的最新的狀態怎麼辦?
首先:查詢之前的編號
指令:

$ git reflog

然後再執行

$ git reset --hard 提交編號

小結:
要想回到過去,先獲取commit id ,然後通過git reset --hard回到過去。

回到未來:需要使用 git reflog 進行歷史操作查詢,獲取最新的commit id。(編號)

可以發現在寫回退指令的時候commit id 可以不用寫全,git會自動識別。至少需要寫前4位元。

03.遠端倉庫

線上倉庫的操作,以Github為例。(目前為Git倉庫提供遠端倉庫的網站有很多)

1.Github線上倉庫的建立

在這裡插入圖片描述
2.使用線上倉庫
新增遠端倉庫(這裡新增github)

注意:在git bash中輸入 cd /D 注意盤名字一定要是大寫。如不輸入這個語句 不給git bash定位的話,預設的本地檔案位置是在C槽中。然後再cd到以遠端倉庫相同名字的資料夾中。

第一種方式:基於https協定:
倉庫就是目錄:
1.建立空目錄,名稱為shop(任取)
2.複製https對應得地址。
然後在當前目錄新建shop目錄

$ mkdir shop
$ cd ./shop

3.使用clone指令克隆線上倉庫到本地。

$ git clone 線上倉庫地址

執行後,線上的倉庫就被clone下來了,如果clone下來的是一個空目錄,克隆下來的目錄只有隱藏的.git目錄。

4.在上述操作完成後,就可以在本地倉庫做對應的操作

比如:(提交至暫存區,提交到本地倉庫,提交到線上倉庫(遠端倉庫),拉取線上倉庫
前面幾個操作跟上面的本地倉庫操作相同。

然後提交到線上倉庫:

如果是首次提交,首先應獲取許可權:(否則會出現403的錯誤)
因為不是任何人都可以往線上倉庫提交內容。
獲取許可權:
修改".git/config 檔案內容:
在url這一項中:
在github.com前面加上:使用者名稱:密碼@
如:

url=https://使用者名稱:密碼@github.com/使用者名稱/倉庫名.git

其它不變。

指令:
提交到線上倉庫的指令

$ git push

提交成功之後,你會發現,線上倉庫中多你提交的內容。

注意:如果你提交成功下班後:同事也向該遠端倉庫提交了新的內容。第二天上班時,你需要拉去線上的倉庫的最新版本
使用命令:

$ git pull

因此在每天工作的第一件事就是git pull 拉取線上的最新版本,下班要做的就是 git push,將原生程式碼提交到線上倉庫。

第二種方式:基於ssh協定(推薦使用)
該方式與前面https方式相比,只是影響github對於使用者的身份鑑定方式,對於git的具體操作沒有任何改變。

步驟:
1.生成使用者端公私鑰檔案。
2.將公鑰上傳到Github。

實際操作:
1.建立公私鑰檔案

你的本地 Git 倉庫和 GitHub 倉庫之間的傳輸是通過SSH加密的,所以我們需要設定驗證資訊:使用以下命令生成 SSH Key:

在這裡直接開啟Git Bash:(也可以在桌面單擊右鍵開啟)

在這裡插入圖片描述

然後輸入命令:

ssh-keygen -t rsa -C "註冊郵箱"

如果你無法生成金鑰(須先自行安裝OpenSSH)然後在執行以上命令。
網上的一些教學使用命令:

$ ssh-keygen -t rsa-C "[email protected]"

注意:其實[email protected]表示的就是註冊郵箱,即兩者是相同的。

之後會要求確認路徑和輸入密碼,我們這使用預設的一路回車就行。

2.找到id_rsa.pub檔案。
成功的話會在 ~/ 下生成 .ssh 資料夾,進去,開啟 id_rsa.pub,複製裡面的 key。
回到 github 上,進入 Account => Settings(賬戶設定)。
為了驗證是否成功,輸入以下命令:

$ ssh -T [email protected]

結果:Hi xxxx! You’ve successfully authenticated, but GitHub does not provide shell access.

3.然後再本地新建目錄(用來儲存線上的專案),然後進入目錄。

$ mkdir 目錄名稱
$ cd ./目錄名稱/

然後克隆目錄到新建的目錄中:

$ git clone ssh地址

線上的倉庫ssh和https地址可以在clone和download中檢視
4.後續操作跟https方式一樣。

相比於https,這種方式一旦設定好後,以後的專案就不需要一個個去設定使用者名稱和密碼了,可以說一勞永益。所以推薦使用這種方式

05.Git的分支操作

什麼是分支 ?
即專案的分支(不同的功能):
所有的分支組成一個專案。
在這裡插入圖片描述
在版本回退的內容中,每次提交都會有記錄,Git把他們串成時間線,形成類似於時間軸的東西,這個時間軸就是一個分支,我們稱之為master分支。

在開發的時候往往是團隊共同作業,多人進行開發,因此光有一個分支是無法滿足多人同時開發的需求的,並且在分支上工作並不會影響其他分支的正常使用,會更加安全,Git鼓勵開發者使用分支去完成一些開發任務。

分支的相關指令:

檢視分支:git branch
建立分支:git branch 分支名
切換分支:git checkout 分支名
刪除分支:git branch -d 分支名
合併分支:git merge 被合併的分支

注意:可以使用"git checkout -b 分支名" 指令來切換分支,-b選項表示建立並切換,相當於是兩個操作指令。

含"*"表示當前分支。

可以看出我們都是對分支進行操作。

刪除分支之前,需要退出該分支,既不能在使用中刪除。

06.衝突的產生與解決

案例:模擬衝突
1.我下班之後,同事對線上專案內容進行了修改,此時本地倉庫的內容與線上倉庫內容不一致,第二天我忘記做git pull操作,而是直接對本地檔案進行修改。
當進行提交時,會報錯。
2.解決衝突
先進行指令"git pull"操作。

3.開啟衝突檔案,解決衝突。
和提交內容的使用者商量儲存哪些內容。刪除哪些內容。

然後重新提交後,在進行push操作即可。

這裡可以看到上班前進行 git pull 的重要性。

07.Git實用功能

1.圖形管理工具

Github for Desktop
對於經常使用Github的開發人員來說是非常便捷的工具。

Source tree
老牌的Git GUI管理工具,適合初學者。

TortoiseGit
對於熟悉SVN的開發人員來說,非常友善。其前輩TortoiseSVN。

自帶的Git GUI管理工具。

08.忽略檔案

專案中存在萬年不變的目錄,例如css,js,images等,或者還有些目錄即便有改動,我們也不想讓其提交到遠端的檔案,此時我們可以使用"忽略檔案」機制來實現需求。

忽略檔案需要新建一個名為 .gitignore的檔案,該檔案用於宣告忽略檔案或不忽略檔案的規則,規則對當前目錄及其子目錄生效。

注意:該檔案因為沒有檔名,沒辦法在windows目錄下直接建立,可以通過命令列Git Bash來建立。

常見的規則如下:
1.過濾整個資料夾      /mtk/
2.過濾所有.zip檔案    *.zip
3.過濾某個具體檔案    /mtk/do.c
4.不過濾具體某個檔案  lindex.php

新建.gitignore的檔案
指令:

$ touch .gitignore

組態檔.gitignore:
如:
1.忽略/js目錄
/js/

09.Github的基本概念

作用:藉助github託管專案程式碼。
1.倉庫(Repository)
倉庫即你的專案,你想在Github上開源一個專案,那就必須要新建一個Repository,如果開源的專案多了,你就擁有多個Repositories。

2.收藏(star)
意為收藏專案的人數。方便下次檢視。

3.複製克隆專案(Fork)
瀏覽他人專案時,點選fork,會在自己的賬號裡新建一個相同的倉庫,該倉庫是獨立存在的,但是會顯示 forked from 誰的倉庫。
在這裡插入圖片描述
4.發起請求(Pull Request)
這是基於Fork的,李四在自己克隆的專案裡進行改進完成後,想要將自己改進的專案合併到原來的專案中,於是他就傳送了一個Pull Request,給原專案的建立人。假如你是這個專案的建立人,你就可以收到這個請求,這時候你會仔細review他的程式碼,如果覺得不錯,就可以接受他的請求,這時候他做的改進,在你的專案裡就有了。
在這裡插入圖片描述
步驟:
1.fork專案
2.修改fork的專案
3.新建pull request
4.等待專案新建者合併專案
5.關注(Watch)
如果你關注了某個專案,那麼以後只要這個專案有任何的更新,都會接收到通知。

6.事務卡片(Issue)
就是你開源了一個專案,別人再檢視你的專案時發現了Bug,或則有些地方做的不好,他就可以給你提個Issue,即問題,然後你看到了這些問題就可以去完善,完善好了就可以將其一個個的Close掉。
即發現程式碼Bug,但是目前沒有成型的程式碼,需要討論時使用。
如:別人給Itcastphpgit2提交一個issue
在這裡插入圖片描述

主頁概念:
1.Github主頁
顯示使用者動態以及關注使用者或關注倉庫的動態。
在這裡插入圖片描述

2.倉庫主頁
專案資訊
在這裡插入圖片描述

3.個人主頁
個人資訊

官方網址:Github.com

新建Github賬戶:
**加粗樣式**
在這裡插入圖片描述
注意:github伺服器在國外,所以存取較慢或者無法存取。

根據操作驗證郵箱,建立遠端倉庫。

遠端倉庫的操作:

1.新建檔案
在這裡插入圖片描述
2.編輯檔案
在這裡插入圖片描述

點選檔名,然後點選「小筆"圖案。

3.上傳檔案
點選上傳檔案,然後加描述。(Upload files)

4.搜尋倉庫檔案
點選搜尋(Find file)

5.下載專案
點選Clone or download

10.github Pages搭建網站

個人站點
存取:
https://使用者名稱.github.io

搭建步驟
1.建立個人站點–>新建倉庫(注:倉庫名必須是【使用者名稱.github.io】

2.在倉庫下新建index.html的檔案即可。

注意:github pages 僅支援靜態網頁
2.倉庫裡只能是.html檔案。

推薦學習:《》

以上就是十分鐘帶你整理Git和Github的詳細入門教學的詳細內容,更多請關注TW511.COM其它相關文章!