溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Git和Github的該如何入門

發(fā)布時(shí)間:2022-01-05 18:00:20 來(lái)源:億速云 閱讀:96 作者:柒染 欄目:軟件技術(shù)

今天就跟大家聊聊有關(guān)Git和Github的該如何入門,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

本篇文章給大家?guī)?lái)了Git和Github詳細(xì)入門教程,Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng),Github是一個(gè)為用戶提供Git服務(wù)的網(wǎng)站,希望對(duì)大家有幫助。

01.Git概述

1.Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)

解決的問(wèn)題:
記錄了每次修改的:版本,內(nèi)容,操作用戶,修改時(shí)間,文檔名等。

2.Git和Github的區(qū)別
Git是一個(gè)分布式版本控制系統(tǒng),簡(jiǎn)單的說(shuō)就是一個(gè)軟件,用于記錄一個(gè)或若干文件內(nèi)容變化,以便來(lái)查閱特定版本修訂情況的軟件。

Github是一個(gè)為用戶提供Git服務(wù)的網(wǎng)站,簡(jiǎn)單說(shuō)就是一個(gè)可以放代碼的地方(也可以放其他內(nèi)容)。Github除了提供管理Git的web界面外,還提供了訂閱、關(guān)注、討論組】在線編輯器等豐富的功能。

Git 并不像 SVN 那樣有個(gè)中心服務(wù)器。

目前我們使用到的 Git 命令都是在本地執(zhí)行,如果你想通過(guò) Git 分享你的代碼或者與其他開發(fā)人員合作。 你就需要將數(shù)據(jù)放到一臺(tái)其他開發(fā)人員能夠連接的服務(wù)器上。本例使用了 Github 作為遠(yuǎn)程倉(cāng)庫(kù)

Git的安裝

02.Git的本地倉(cāng)庫(kù)操作

1.工作流程
Git本地操作的三個(gè)區(qū)域:

工作流程:

暫存區(qū):相當(dāng)于購(gòu)物車存放要購(gòu)買的物品最后一起付款。

2.本地倉(cāng)庫(kù)操作
什么是倉(cāng)庫(kù)?
倉(cāng)庫(kù)又叫做版本庫(kù),英文名 repository,我們可以簡(jiǎn)單的理解成是一個(gè)目錄,用于存放代碼,這個(gè)目錄里面所有的文件都可以被Git管理起來(lái),每個(gè)文件的修改,刪除等操作Git都可以跟蹤到。

在安裝好后首次使用需要先進(jìn)行全局配置:

1.點(diǎn)擊”Git Bash Here "以打開Git命令行窗口:

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

設(shè)置好用戶信息,當(dāng)進(jìn)行項(xiàng)目修改的時(shí)候就會(huì)記錄用戶名

2.創(chuàng)建本地倉(cāng)庫(kù)
當(dāng)我們需要讓Git 去管理某個(gè)新項(xiàng)目/已存在的項(xiàng)目的時(shí)候,就需要?jiǎng)?chuàng)建倉(cāng)庫(kù)。

建議使用空目錄學(xué)習(xí)Git,因?yàn)椴僮魇д`產(chǎn)生不必要的錯(cuò)誤。目錄名盡量使用英文名。

3.創(chuàng)建目錄

$ mkdir  目錄名

也可以直接在本地以新建的方式創(chuàng)建。
4.在命令行中進(jìn)入項(xiàng)目目錄 pre_git

$ cd 目錄名

5.Git倉(cāng)庫(kù)的初始化
即讓Git知道需要他來(lái)管理這個(gè)目錄

$ git init

執(zhí)行后,打開這個(gè)項(xiàng)目目錄下,點(diǎn)擊隱藏目錄你會(huì)發(fā)現(xiàn)多了一個(gè).git文件夾。不能刪除,也不能隨意更改。

到這里就可以在里面進(jìn)行開發(fā)。
6.Git常用指令操作
查看當(dāng)前工作狀態(tài):

$ git status

作用:當(dāng)我們忘記項(xiàng)目做到哪里的時(shí)候,比如上個(gè)廁所回來(lái),開個(gè)會(huì)回來(lái)等??梢允褂眠@個(gè)命令來(lái)判斷下一步要干嘛。

7.可以在項(xiàng)目目錄中,進(jìn)行開發(fā)

8.將工作區(qū)文件添加到緩存區(qū):

說(shuō)明:git add 指令,可以添加一個(gè)文件,也可以同時(shí)添加多個(gè)文件。
語(yǔ)法一:$ git add 文件名
語(yǔ)法二:$ git add 文件名1 文件名2 文件名3 ......
語(yǔ)法三:$ git add .    【添加當(dāng)前目錄到緩存區(qū)中】

9.提交至版本庫(kù)

$ git commit -m "注釋內(nèi)容"

如果創(chuàng)建了新的文件,從add開始,重復(fù)上述操作即可。

如果修改了已提交的文件內(nèi)容,再?gòu)腶dd開始重新提交就好了。

這里的提交等操作只是提交到Git本地倉(cāng)庫(kù)。

Git的版本回退操作

版本回退分為兩個(gè)步驟:
1.首先查看版本,確定需要回到的時(shí)刻點(diǎn)
指令:

$ git log
$ git log --pretty=oneline

第二種指令:簡(jiǎn)化了信息。
2.回退操作:
指令:

$ git reset --hard 提交編號(hào)

執(zhí)行操作后,項(xiàng)目目錄中的文件會(huì)回到指定的時(shí)刻。

回到過(guò)去之后,這時(shí)我又想回到之前的最新的狀態(tài)怎么辦?
首先:查詢之前的編號(hào)
指令:

$ git reflog

然后再執(zhí)行

$ git reset --hard 提交編號(hào)

小結(jié):
要想回到過(guò)去,先獲取commit id ,然后通過(guò)git reset --hard回到過(guò)去。

回到未來(lái):需要使用 git reflog 進(jìn)行歷史操作查詢,獲取最新的commit id。(編號(hào))

可以發(fā)現(xiàn)在寫回退指令的時(shí)候commit id 可以不用寫全,git會(huì)自動(dòng)識(shí)別。至少需要寫前4位。

03.遠(yuǎn)程倉(cāng)庫(kù)

線上倉(cāng)庫(kù)的操作,以Github為例。(目前為Git倉(cāng)庫(kù)提供遠(yuǎn)程倉(cāng)庫(kù)的網(wǎng)站有很多)

1.Github線上倉(cāng)庫(kù)的創(chuàng)建


2.使用線上倉(cāng)庫(kù)
添加遠(yuǎn)程倉(cāng)庫(kù)(這里添加github)

注意:在git bash中輸入 cd /D 注意盤名字一定要是大寫。如不輸入這個(gè)語(yǔ)句 不給git bash定位的話,默認(rèn)的本地文件位置是在c盤中。然后再cd到以遠(yuǎn)程倉(cāng)庫(kù)相同名字的文件夾中。

第一種方式:基于https協(xié)議:
倉(cāng)庫(kù)就是目錄:
1.創(chuàng)建空目錄,名稱為shop(任?。?br/> 2.復(fù)制https對(duì)應(yīng)得地址。
然后在當(dāng)前目錄新建shop目錄

$ mkdir shop
$ cd ./shop

3.使用clone指令克隆線上倉(cāng)庫(kù)到本地。

$ git clone 線上倉(cāng)庫(kù)地址

執(zhí)行后,線上的倉(cāng)庫(kù)就被clone下來(lái)了,如果clone下來(lái)的是一個(gè)空目錄,克隆下來(lái)的目錄只有隱藏的.git目錄。

4.在上述操作完成后,就可以在本地倉(cāng)庫(kù)做對(duì)應(yīng)的操作

比如:(提交至?xí)捍鎱^(qū),提交到本地倉(cāng)庫(kù),提交到線上倉(cāng)庫(kù)(遠(yuǎn)程倉(cāng)庫(kù)),拉取線上倉(cāng)庫(kù)
前面幾個(gè)操作跟上面的本地倉(cāng)庫(kù)操作相同。

然后提交到線上倉(cāng)庫(kù):

如果是首次提交,首先應(yīng)獲取權(quán)限:(否則會(huì)出現(xiàn)403的錯(cuò)誤)
因?yàn)椴皇侨魏稳硕伎梢酝€上倉(cāng)庫(kù)提交內(nèi)容。
獲取權(quán)限:
修改".git/config 文件內(nèi)容:
在url這一項(xiàng)中:
在github.com前面加上:用戶名:密碼@
如:

url=https://用戶名:密碼@github.com/用戶名/倉(cāng)庫(kù)名.git

其它不變。

指令:
提交到線上倉(cāng)庫(kù)的指令

$ git push

提交成功之后,你會(huì)發(fā)現(xiàn),線上倉(cāng)庫(kù)中多你提交的內(nèi)容。

注意:如果你提交成功下班后:同事也向該遠(yuǎn)程倉(cāng)庫(kù)提交了新的內(nèi)容。第二天上班時(shí),你需要拉去線上的倉(cāng)庫(kù)的最新版本
使用命令:

$ git pull

因此在每天工作的第一件事就是git pull 拉取線上的最新版本,下班要做的就是 git push,將本地代碼提交到線上倉(cāng)庫(kù)。

第二種方式:基于ssh協(xié)議(推薦使用)
該方式與前面https方式相比,只是影響github對(duì)于用戶的身份鑒定方式,對(duì)于git的具體操作沒(méi)有任何改變。

步驟:
1.生成客戶端公私鑰文件。
2.將公鑰上傳到Github。

實(shí)際操作:
1.創(chuàng)建公私鑰文件

你的本地 Git 倉(cāng)庫(kù)和 GitHub 倉(cāng)庫(kù)之間的傳輸是通過(guò)SSH加密的,所以我們需要配置驗(yàn)證信息:使用以下命令生成 SSH Key:

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

然后輸入命令:

ssh-keygen -t rsa -C "注冊(cè)郵箱"

如果你無(wú)法生成密鑰(須先自行安裝OpenSSH)然后在執(zhí)行以上命令。
網(wǎng)上的一些教程使用命令:

$ ssh-keygen -t rsa-C "your_email@youremail.com"

注意:其實(shí)your_email@youremail.com表示的就是注冊(cè)郵箱,即兩者是相同的。

之后會(huì)要求確認(rèn)路徑和輸入密碼,我們這使用默認(rèn)的一路回車就行。

2.找到id_rsa.pub文件。
成功的話會(huì)在 ~/ 下生成 .ssh 文件夾,進(jìn)去,打開 id_rsa.pub,復(fù)制里面的 key。
回到 github 上,進(jìn)入 Account => Settings(賬戶配置)。
為了驗(yàn)證是否成功,輸入以下命令:

$ ssh -T git@github.com

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

3.然后再本地新建目錄(用來(lái)保存線上的項(xiàng)目),然后進(jìn)入目錄。

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

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

$ git clone ssh地址

線上的倉(cāng)庫(kù)ssh和https地址可以在clone和download中查看
4.后續(xù)操作跟https方式一樣。

相比于https,這種方式一旦配置好后,以后的項(xiàng)目就不需要一個(gè)個(gè)去配置用戶名和密碼了,可以說(shuō)一勞永益。所以推薦使用這種方式

05.Git的分支操作

什么是分支 ?
即項(xiàng)目的分支(不同的功能):
所有的分支組成一個(gè)項(xiàng)目。

在版本回退的內(nèi)容中,每次提交都會(huì)有記錄,Git把他們串成時(shí)間線,形成類似于時(shí)間軸的東西,這個(gè)時(shí)間軸就是一個(gè)分支,我們稱之為master分支。

在開發(fā)的時(shí)候往往是團(tuán)隊(duì)協(xié)作,多人進(jìn)行開發(fā),因此光有一個(gè)分支是無(wú)法滿足多人同時(shí)開發(fā)的需求的,并且在分支上工作并不會(huì)影響其他分支的正常使用,會(huì)更加安全,Git鼓勵(lì)開發(fā)者使用分支去完成一些開發(fā)任務(wù)。

分支的相關(guān)指令:

查看分支:git branch
創(chuàng)建分支:git branch 分支名
切換分支:git checkout 分支名
刪除分支:git branch -d 分支名
合并分支:git merge 被合并的分支

注意:可以使用"git checkout -b 分支名" 指令來(lái)切換分支,-b選項(xiàng)表示創(chuàng)建并切換,相當(dāng)于是兩個(gè)操作指令。

含"*"表示當(dāng)前分支。

可以看出我們都是對(duì)分支進(jìn)行操作。

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

06.沖突的產(chǎn)生與解決

案例:模擬沖突
1.我下班之后,同事對(duì)線上項(xiàng)目?jī)?nèi)容進(jìn)行了修改,此時(shí)本地倉(cāng)庫(kù)的內(nèi)容與線上倉(cāng)庫(kù)內(nèi)容不一致,第二天我忘記做git pull操作,而是直接對(duì)本地文件進(jìn)行修改。
當(dāng)進(jìn)行提交時(shí),會(huì)報(bào)錯(cuò)。
2.解決沖突
先進(jìn)行指令"git pull"操作。

3.打開沖突文件,解決沖突。
和提交內(nèi)容的用戶商量保存哪些內(nèi)容。刪除哪些內(nèi)容。

然后重新提交后,在進(jìn)行push操作即可。

這里可以看到上班前進(jìn)行 git pull 的重要性。

07.Git實(shí)用功能

1.圖形管理工具

Github for Desktop
對(duì)于經(jīng)常使用Github的開發(fā)人員來(lái)說(shuō)是非常便捷的工具。

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

TortoiseGit
對(duì)于熟悉SVN的開發(fā)人員來(lái)說(shuō),非常友善。其前輩TortoiseSVN。

自帶的Git GUI管理工具。

08.忽略文件

項(xiàng)目中存在萬(wàn)年不變的目錄,例如css,js,images等,或者還有些目錄即便有改動(dòng),我們也不想讓其提交到遠(yuǎn)程的文檔,此時(shí)我們可以使用"忽略文件”機(jī)制來(lái)實(shí)現(xiàn)需求。

忽略文件需要新建一個(gè)名為 .gitignore的文件,該文件用于聲明忽略文件或不忽略文件的規(guī)則,規(guī)則對(duì)當(dāng)前目錄及其子目錄生效。

注意:該文件因?yàn)闆](méi)有文件名,沒(méi)辦法在windows目錄下直接創(chuàng)建,可以通過(guò)命令行Git Bash來(lái)創(chuàng)建。

常見的規(guī)則如下:
1.過(guò)濾整個(gè)文件夾      /mtk/
2.過(guò)濾所有.zip文件    *.zip
3.過(guò)濾某個(gè)具體文件    /mtk/do.c
4.不過(guò)濾具體某個(gè)文件  lindex.php

新建.gitignore的文件
指令:

$ touch .gitignore

配置文件.gitignore:
如:
1.忽略/js目錄
/js/

09.Github的基本概念

作用:借助github托管項(xiàng)目代碼。
1.倉(cāng)庫(kù)(Repository)
倉(cāng)庫(kù)即你的項(xiàng)目,你想在Github上開源一個(gè)項(xiàng)目,那就必須要新建一個(gè)Repository,如果開源的項(xiàng)目多了,你就擁有多個(gè)Repositories。

2.收藏(star)
意為收藏項(xiàng)目的人數(shù)。方便下次查看。

3.復(fù)制克隆項(xiàng)目(Fork)
瀏覽他人項(xiàng)目時(shí),點(diǎn)擊fork,會(huì)在自己的賬號(hào)里新建一個(gè)相同的倉(cāng)庫(kù),該倉(cāng)庫(kù)是獨(dú)立存在的,但是會(huì)顯示 forked from 誰(shuí)的倉(cāng)庫(kù)。

4.發(fā)起請(qǐng)求(Pull Request)
這是基于Fork的,李四在自己克隆的項(xiàng)目里進(jìn)行改進(jìn)完成后,想要將自己改進(jìn)的項(xiàng)目合并到原來(lái)的項(xiàng)目中,于是他就發(fā)送了一個(gè)Pull Request,給原項(xiàng)目的創(chuàng)建人。假如你是這個(gè)項(xiàng)目的創(chuàng)建人,你就可以收到這個(gè)請(qǐng)求,這時(shí)候你會(huì)仔細(xì)review他的代碼,如果覺(jué)得不錯(cuò),就可以接受他的請(qǐng)求,這時(shí)候他做的改進(jìn),在你的項(xiàng)目里就有了。

步驟:
1.fork項(xiàng)目
2.修改fork的項(xiàng)目
3.新建pull request
4.等待項(xiàng)目新建者合并項(xiàng)目
5.關(guān)注(Watch)
如果你關(guān)注了某個(gè)項(xiàng)目,那么以后只要這個(gè)項(xiàng)目有任何的更新,都會(huì)接收到通知。

6.事務(wù)卡片(Issue)
就是你開源了一個(gè)項(xiàng)目,別人再查看你的項(xiàng)目時(shí)發(fā)現(xiàn)了Bug,或則有些地方做的不好,他就可以給你提個(gè)Issue,即問(wèn)題,然后你看到了這些問(wèn)題就可以去完善,完善好了就可以將其一個(gè)個(gè)的Close掉。
即發(fā)現(xiàn)代碼Bug,但是目前沒(méi)有成型的代碼,需要討論時(shí)使用。
如:別人給Itcastphpgit2提交一個(gè)issue

主頁(yè)概念:
1.Github主頁(yè)
顯示用戶動(dòng)態(tài)以及關(guān)注用戶或關(guān)注倉(cāng)庫(kù)的動(dòng)態(tài)。

2.倉(cāng)庫(kù)主頁(yè)

3.個(gè)人主頁(yè)
個(gè)人信息

官方網(wǎng)址:Github.com

新建Github賬戶:

注意:github服務(wù)器在國(guó)外,所以訪問(wèn)較慢或者無(wú)法訪問(wèn)。

根據(jù)操作驗(yàn)證郵箱,創(chuàng)建遠(yuǎn)程倉(cāng)庫(kù)。

遠(yuǎn)程倉(cāng)庫(kù)的操作:

1.新建文件
2.編輯文件

點(diǎn)擊文件名,然后點(diǎn)擊“小筆"圖案。

3.上傳文件
點(diǎn)擊上傳文件,然后加描述。(Upload files)

4.搜索倉(cāng)庫(kù)文件
點(diǎn)擊搜索(Find file)

5.下載項(xiàng)目
點(diǎn)擊Clone or download

10.github Pages搭建網(wǎng)站

個(gè)人站點(diǎn)
訪問(wèn):
https://用戶名.github.io

搭建步驟
1.創(chuàng)建個(gè)人站點(diǎn)–>新建倉(cāng)庫(kù)(注:倉(cāng)庫(kù)名必須是【用戶名.github.io】

2.在倉(cāng)庫(kù)下新建index.html的文件即可。

注意:github pages 僅支持靜態(tài)網(wǎng)頁(yè)
2.倉(cāng)庫(kù)里只能是.html文件。

看完上述內(nèi)容,你們對(duì)Git和Github的該如何入門有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI