0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于Git教程解析

xCb1_yikoulinux ? 來(lái)源:一口Linux ? 作者:一口Linux ? 2022-04-27 14:54 ? 次閱讀

1 參考教程

☆Git官方文檔

https://git-scm.com/book/zh/v2

☆ 廖雪峰的Git教程

https://www.liaoxuefeng.com/wiki/896043488029600

2.Git的作用

Git 是一個(gè)開(kāi)源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目。

Git 是 Linus Torvalds 為了幫助管理 Linux 內(nèi)核開(kāi)發(fā)而開(kāi)發(fā)的一個(gè)開(kāi)放源碼的版本控制軟件。

Git 與常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本庫(kù)的方式,不必服務(wù)器端軟件支持。

3.安裝Git

3.1Linux 系統(tǒng)下安裝

一般Linux系統(tǒng)都會(huì)自帶git命令。

如果沒(méi)有,使用如下命令安裝即可:

sudoapt-getinstall git

3.2 Windows系統(tǒng)下安裝

除官網(wǎng)下載安裝程序外,一般還會(huì)下載小烏龜?shù)膱D形界面客戶端和語(yǔ)言擴(kuò)展包。如下圖:

c74875b0-c5de-11ec-bce3-dac502259ad0.png

安裝完成后右鍵會(huì)出現(xiàn)如下幾個(gè)選項(xiàng)(開(kāi)始是英文):

c757abfc-c5de-11ec-bce3-dac502259ad0.png

在設(shè)置選項(xiàng)中更改成中文即可。

c7656008-c5de-11ec-bce3-dac502259ad0.png

點(diǎn)擊網(wǎng)絡(luò)選項(xiàng),設(shè)置下圖的SSH路徑,找git的安裝路徑(即第一個(gè)軟件的路徑),根據(jù)自己實(shí)際修改。完成后點(diǎn)擊確定即可。

c77808c0-c5de-11ec-bce3-dac502259ad0.png

上面SSH客戶端路徑請(qǐng)一定選擇正確,注意是usr/bin下的ssh.exe

3.3 使用Gitbash終端

Git bash是windows下模擬Linux的終端,支持常用的linux命令,比如ls等。

c789d320-c5de-11ec-bce3-dac502259ad0.png

點(diǎn)擊右鍵菜單中的GitBash Here選項(xiàng),會(huì)彈出如下Gitbash界面。

c7a116e8-c5de-11ec-bce3-dac502259ad0.png

3.4 生成主機(jī)密鑰

ssh-keygen-t rsa -C "xxxx@xx.com"

一路回車,直到命令執(zhí)行結(jié)束。終端會(huì)提示生成密鑰的路徑。

c7ae557e-c5de-11ec-bce3-dac502259ad0.png

id_rsa.pub文件的內(nèi)容即對(duì)外公鑰,可配置到遠(yuǎn)程服務(wù)器中,配置完成后往遠(yuǎn)程服務(wù)器推送即可不用每次再輸入用戶名和密碼。

c7bbc402-c5de-11ec-bce3-dac502259ad0.png

4.Git管理區(qū)域

4.1 區(qū)域劃分

☆ 工作區(qū)

即我們新建git倉(cāng)庫(kù)后在電腦上看到的目錄,此區(qū)域內(nèi)文件改動(dòng)完全由我們自己掌控,Git不進(jìn)行備份管理,可以隨時(shí)把新增工作區(qū)內(nèi)容通過(guò)Git命令刪除或者增加到暫存區(qū)。

☆ 暫存區(qū)

暫存區(qū)是個(gè)比較虛擬的概念,可以理解為工作區(qū)和版本庫(kù)之間的過(guò)渡,當(dāng)用戶想簡(jiǎn)單備份工作區(qū)內(nèi)容,但又不想做版本提交,就可以將工作區(qū)內(nèi)容暫時(shí)存放到暫存區(qū),此區(qū)域的內(nèi)容可方便的還原回工作區(qū),或者作為正式版本提交到版本庫(kù)。

☆ 版本庫(kù)

Git版本管理的核心,存儲(chǔ)著每一個(gè)版本的備份。

☆ 遠(yuǎn)程庫(kù)

遠(yuǎn)端服務(wù)器,即上文中提到的“中央服務(wù)器”,僅用來(lái)作為開(kāi)發(fā)者之間的版本倉(cāng)庫(kù)同步使用。

5.Git命令

5.1 基礎(chǔ)命令

配置用戶信息 gitconfig --global user.name "zhangsan" gitconfig --global user.email "xxxx@xx.com" 配置的信息用作提交版本時(shí)標(biāo)識(shí)提交者用戶名和郵箱地址。 查看當(dāng)前配置 gitconfig -l 初始化倉(cāng)庫(kù) git init 將工作區(qū)內(nèi)容添加到暫存區(qū) git add 查看倉(cāng)庫(kù)當(dāng)前的狀態(tài) gitstatus 查看文件修改 git diff

5.2 版本控制

c7d0b312-c5de-11ec-bce3-dac502259ad0.png

將暫存區(qū)的內(nèi)容提交到版本庫(kù) gitcommit -m "版本修改信息" 將暫存區(qū)內(nèi)容放回工作區(qū) gitreset HEAD 將工作區(qū)內(nèi)容丟掉 gitcheckout 查看當(dāng)前版本以前的歷史 git log 查看當(dāng)前版本前后所有的歷史 gitreflog 回退一個(gè)版本 gitreset --hard HEAD^ 回退到某個(gè)版本 gitreset --hard

5.3 分支管理

c7e094da-c5de-11ec-bce3-dac502259ad0.png

創(chuàng)建新的分支 gitcheckout -b dev相當(dāng)于gitbranch dev + git checkout dev兩個(gè)命令的集合 列出所有分支并用*標(biāo)注當(dāng)前分支 git branch 切換回name分支 git checkout 把name分支合并到當(dāng)前分支 git merge 刪除name的分支 git branch -d

分支管理參考圖

c7ee4fc6-c5de-11ec-bce3-dac502259ad0.png

5.4 遠(yuǎn)程倉(cāng)庫(kù) (常用代碼托管平臺(tái))

☆ Github

開(kāi)源項(xiàng)目的聚集地,世界最大的代碼托管平臺(tái)。很多著名的項(xiàng)目都在Github開(kāi)源,比如Linux源碼、Qt源碼等。缺點(diǎn):國(guó)內(nèi)經(jīng)常無(wú)法訪問(wèn),速度比較慢。

☆ Gitlab

Gitlab支持公有倉(cāng)庫(kù)和免費(fèi)的私有倉(cāng)庫(kù),體驗(yàn)和Github類似,常用作搭建的企業(yè)內(nèi)網(wǎng)代碼托管平臺(tái)。公有倉(cāng)庫(kù)國(guó)內(nèi)經(jīng)常無(wú)法訪問(wèn),速度比較慢。

☆ 碼云

國(guó)內(nèi)代碼托管的老大,一個(gè)賬號(hào)最多可以創(chuàng)建1000個(gè)項(xiàng)目,不分公有和私有。速度非??欤w驗(yàn)較好。但是單文件大小不能超過(guò)100M。

☆ 相關(guān)命令

克隆遠(yuǎn)程倉(cāng)庫(kù) gitclone <遠(yuǎn)程地址> 本地推送到遠(yuǎn)程 git pushorigin <分支名> 從遠(yuǎn)程拉取更新 git pull

☆ 配置別名

git config --global alias.st statusgit config --global alias.ci commitgit config --global alias.br branchgit config --global alias.ch checkout

6.TortoiseGit使用

6.1 操作演示

克隆項(xiàng)目

c82bf768-c5de-11ec-bce3-dac502259ad0.png

c839200a-c5de-11ec-bce3-dac502259ad0.png

撤銷工作區(qū)修改

c84566a8-c5de-11ec-bce3-dac502259ad0.png

版本提交

c8608276-c5de-11ec-bce3-dac502259ad0.png

c86b8db0-c5de-11ec-bce3-dac502259ad0.png

拉取更新

c8844350-c5de-11ec-bce3-dac502259ad0.png

c88f63e8-c5de-11ec-bce3-dac502259ad0.png

c8844350-c5de-11ec-bce3-dac502259ad0.png

推送更新

c8aa8db2-c5de-11ec-bce3-dac502259ad0.png

end

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    6477

    瀏覽量

    110327
  • Git
    Git
    +關(guān)注

    關(guān)注

    0

    文章

    195

    瀏覽量

    15713

原文標(biāo)題:Git教程,這一篇就夠了

文章出處:【微信號(hào):yikoulinux,微信公眾號(hào):一口Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ubuntu下的vscode插件安裝idf時(shí),總是找不到git,為什么?

    總是提示:Git is not found in current environment 但是我已經(jīng)在setting.json下設(shè)置了\"git.path\": \"/bin/git\" 同行,命令行里查看
    發(fā)表于 06-21 07:16

    通過(guò)git命令獲取ESP8266_RTOS_SDK失敗如何解決?

    本人使用的硬件平臺(tái)為esp8266,開(kāi)發(fā)環(huán)境為ubuntu22.04。在通過(guò)git命令獲取ESP8266_RTOS_SDK失敗,通過(guò)上網(wǎng)搜索嘗試了很多方法無(wú)效。具體情況如下
    發(fā)表于 06-07 07:26

    請(qǐng)問(wèn)下使用IDF怎么做用git做版本控制?

    請(qǐng)問(wèn)下使用IDF怎么做用git做版本控制?是保存自己應(yīng)用部分的代碼還是整個(gè)SDK都要保存,但是整個(gè)框架都是官方下的,有沒(méi)必要保存,求各位大神告知下你們?cè)趺刺幚淼摹?/div>
    發(fā)表于 06-06 07:15

    Git發(fā)布新版本 修補(bǔ)五處安全漏洞 包含嚴(yán)重遠(yuǎn)程代碼執(zhí)行風(fēng)險(xiǎn)

    CVE-2024-32002漏洞的嚴(yán)重性在于,黑客可通過(guò)創(chuàng)建特定的Git倉(cāng)庫(kù)子模塊,誘騙Git將文件寫(xiě)入.git/目錄,而非子模塊的工作樹(shù)。如此一來(lái),攻擊者便能在克隆過(guò)程中植入惡意腳本,用戶幾乎無(wú)法察覺(jué)。
    的頭像 發(fā)表于 05-31 10:09 ?521次閱讀

    飛凌ElfBoard ELF 1板卡-ubuntu18.04 git安裝及基本使用

    1.安裝gitsudo apt-get install git 2.git初始化git init 3.設(shè)置用戶名和郵箱git config --global user.name \"你
    發(fā)表于 03-21 16:23

    藍(lán)牙 | 軟件:Git管理高通的ChipCode項(xiàng)目

    最近發(fā)現(xiàn)大家在高通chipcode網(wǎng)站上下載不了代碼,小編一直使用git的方式獲取新版本代碼,沒(méi)有遇到什么阻礙。于是小編到新主機(jī)上嘗試下載代碼的壓縮包和git代碼,都遇到了問(wèn)題。由于壓縮包是高通自己
    的頭像 發(fā)表于 01-26 08:29 ?339次閱讀
    藍(lán)牙 | 軟件:<b class='flag-5'>Git</b>管理高通的ChipCode項(xiàng)目

    克服PLC編程的難題—基于Git的軟件

    Git是一種分布式版本控制系統(tǒng),它可以記錄文件的修改歷史和版本變化,并可以支持多人協(xié)同開(kāi)發(fā)。
    的頭像 發(fā)表于 01-22 09:30 ?893次閱讀
    克服PLC編程的難題—基于<b class='flag-5'>Git</b>的軟件

    Git開(kāi)發(fā)者關(guān)注內(nèi)存安全問(wèn)題,探討引入Rust語(yǔ)言

    根據(jù)最新披露的郵件討論,Git開(kāi)發(fā)團(tuán)隊(duì)熱議在Git項(xiàng)目中引入Rust的可行性。作為一種開(kāi)源的分布式代碼版本管理工具,廣泛運(yùn)用于各種開(kāi)發(fā)項(xiàng)目。盡管現(xiàn)在Git項(xiàng)目主要以C與Python為主要開(kāi)發(fā)語(yǔ)言,但探討顯示,引入Rust能顯著降
    的頭像 發(fā)表于 01-15 14:23 ?529次閱讀
    <b class='flag-5'>Git</b>開(kāi)發(fā)者關(guān)注內(nèi)存安全問(wèn)題,探討引入Rust語(yǔ)言

    GIT(分布式版本控制系統(tǒng))的工作原理

    都是完整的,功能更強(qiáng)大,自然而然操作更復(fù)雜一些。git在本地也是以git版本庫(kù)的形式管理,可以在本地做一些修改,然后commit到本地的版本庫(kù),最后push到服務(wù)器。
    的頭像 發(fā)表于 12-21 16:09 ?764次閱讀
    <b class='flag-5'>GIT</b>(分布式版本控制系統(tǒng))的工作原理

    Git命令解決常見(jiàn)場(chǎng)景記錄

    本文主要?dú)w納一下git的學(xué)習(xí)記錄,在開(kāi)發(fā)期間發(fā)現(xiàn)了git在sourcetree的處理不是很好,對(duì)于多選文件的丟棄這點(diǎn)不是很方便,所以做一個(gè)記錄,由于項(xiàng)目中有新建的文件,所以被識(shí)別為未跟蹤的文件,但我
    的頭像 發(fā)表于 12-20 09:44 ?388次閱讀
    用<b class='flag-5'>Git</b>命令解決常見(jiàn)場(chǎng)景記錄

    git切換遠(yuǎn)程地址分支方式

    git remote set-url origin URL】 更換遠(yuǎn)程倉(cāng)庫(kù)地址,URL為新地址。
    的頭像 發(fā)表于 12-18 09:35 ?2093次閱讀

    Git命令之本地分支與遠(yuǎn)程分支關(guān)聯(lián)和解除

    在實(shí)際的工作生活中,往往需要將本地的分支和遠(yuǎn)程分支關(guān)聯(lián),這樣我們就可以使用git pull命令來(lái)更新拉取最新的代碼,并使用git push命令將自己本地的修改推送到遠(yuǎn)程倉(cāng)庫(kù)。但是如果此時(shí)你本地關(guān)聯(lián)
    的頭像 發(fā)表于 12-15 09:27 ?2742次閱讀
    <b class='flag-5'>Git</b>命令之本地分支與遠(yuǎn)程分支關(guān)聯(lián)和解除

    git命令的基本使用

    git config 第一次使用git或者剛安裝的git時(shí),使用此命令設(shè)置身份Name 和 Eamail 地址。并且每次提交時(shí)會(huì)使用此信息。
    的頭像 發(fā)表于 12-11 13:53 ?855次閱讀

    Mozilla Firefox開(kāi)發(fā)將完全轉(zhuǎn)向Git,放棄Mercurial

    目前相關(guān)事項(xiàng)仍在規(guī)劃中,預(yù)計(jì)至少六個(gè)月后才會(huì)開(kāi)始全面的 Git 過(guò)渡。過(guò)渡完成后,Mercurial 將從 Firefox 開(kāi)發(fā)工作流程中完全淘汰。
    的頭像 發(fā)表于 11-23 16:08 ?588次閱讀
    Mozilla Firefox開(kāi)發(fā)將完全轉(zhuǎn)向<b class='flag-5'>Git</b>,放棄Mercurial

    Git是如何存儲(chǔ)文件的?Git的工作原理解析

    我以為我已經(jīng)對(duì) Git 的工作方式了如指掌,但我以前從未真正涉及過(guò)打包文件,所以這次探索很有趣。我也很少思考當(dāng)我讓 git log 跟蹤一個(gè)文件的歷史時(shí),它實(shí)際上有多大的工作量,因此也很開(kāi)心能深入研究這個(gè)。
    的頭像 發(fā)表于 10-31 15:36 ?520次閱讀