国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Git】Git基本操作

這篇具有很好參考價(jià)值的文章主要介紹了【Git】Git基本操作。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

【Git】Git基本操作,git

Git 是什么

Git是一個(gè)免費(fèi)的、開(kāi)源的分布式版本控制系統(tǒng),可以快速高效地處理從小型到大型的各種項(xiàng)目。它采用分布式方式,避免中心服務(wù)器的單點(diǎn)故障,保障系統(tǒng)的高可用性和穩(wěn)定性。Git可以作為一種過(guò)渡方案來(lái)替代BitKeeper,幫助管理Linux內(nèi)核開(kāi)發(fā)等??傊?,Git是一種高效、靈活的版本控制系統(tǒng),適用于各種規(guī)模的項(xiàng)目,是開(kāi)發(fā)人員和管理人員的得力工具。

假設(shè)我們?cè)诠局校习遄屛覀兺瓿梢粋€(gè)項(xiàng)目的項(xiàng)目規(guī)劃書(shū),當(dāng)我們花了三天寫(xiě)出來(lái)這個(gè)項(xiàng)目規(guī)劃書(shū)之后,我們就將這個(gè)規(guī)劃書(shū)給老板看,但是老板看了之后呢,覺(jué)得不滿意,讓你回去做修改。你又花了一天的時(shí)間在上次規(guī)劃書(shū)的基礎(chǔ)上對(duì)項(xiàng)目規(guī)劃書(shū)做出了修改,你又交給了老板,讓老板看修改的是否滿意,但是老板還是不同意,又讓你回去做出修改,于是你又花了一天的時(shí)間在上個(gè)規(guī)劃書(shū)的基礎(chǔ)上做出修改,這次你將修改后的規(guī)劃書(shū)交給老板看,老板覺(jué)得還是不滿意,并且說(shuō):“我覺(jué)得你第二次的項(xiàng)目書(shū)寫(xiě)的還不錯(cuò),就使用第二次的為最終的項(xiàng)目規(guī)劃書(shū)吧?!甭?tīng)到這,你腦子一暈,頓時(shí)想把這個(gè)項(xiàng)目規(guī)劃書(shū)甩到老板的臉上說(shuō):“你耍我呢?”。

那么如何避免上面發(fā)生的問(wèn)題呢?其實(shí)我們只需要將每次做出的修改的原稿給保存下來(lái),當(dāng)修改的時(shí)候我們不修改原稿,而是重新拿一個(gè)稿子,在之前規(guī)劃書(shū)的基礎(chǔ)上進(jìn)行修改,這樣就能夠保存每次修改之后的規(guī)劃書(shū),當(dāng)老板需要哪一份的時(shí)候,我們只需要拿出那個(gè)版本的原稿就行了。而我們的 Git 的作用就是這樣的。

為了能夠更?便我們管理這些不同版本的?件,便有了版本控制器。所謂的版本控制器,就是能讓你了解到?個(gè)?件的歷史,以及它的發(fā)展過(guò)程的系統(tǒng)。通俗的講就是?個(gè)可以記錄?程的每?次改動(dòng)和版本迭代的?個(gè)管理系統(tǒng),同時(shí)也?便多?協(xié)同作業(yè)。

?前最主流的版本控制器就是 Git。Git 可以控制電腦上所有格式的?件,例如doc、excel、dwg、dgn、rvt等等。對(duì)于我們開(kāi)發(fā)?員來(lái)說(shuō),Git最重要的就是可以幫助我們管理軟件開(kāi)發(fā)項(xiàng)?中的源代碼?件。

Git 的優(yōu)點(diǎn)

  1. 分布式版本控制系統(tǒng):Git是一個(gè)分布式版本控制系統(tǒng),與傳統(tǒng)的中央倉(cāng)庫(kù)版本控制系統(tǒng)不同。每個(gè)開(kāi)發(fā)人員都可以在自己的本地倉(cāng)庫(kù)中進(jìn)行版本控制,無(wú)需依賴中央倉(cāng)庫(kù)。這使得版本控制更加靈活,提高了團(tuán)隊(duì)協(xié)作的效率。
  2. 高效的性能:Git在版本控制方面具有高效的性能,能夠快速地完成各種操作,如提交、查看歷史記錄、合并分支等。這使得開(kāi)發(fā)人員能夠更加專(zhuān)注于編碼工作,而不是頻繁地切換到版本控制工具。
  3. 強(qiáng)大的分支管理:Git提供了強(qiáng)大的分支管理功能,可以方便地創(chuàng)建、切換、合并分支。這使得團(tuán)隊(duì)協(xié)作更加方便,不同開(kāi)發(fā)人員可以同時(shí)處理不同的功能分支,提高了開(kāi)發(fā)效率。
  4. 回滾和撤銷(xiāo)操作:Git提供了回滾和撤銷(xiāo)操作功能,可以輕松地恢復(fù)到以前的版本或者撤銷(xiāo)錯(cuò)誤的操作。這使得開(kāi)發(fā)人員能夠更加放心地進(jìn)行代碼修改,減少了因?yàn)檎`操作而帶來(lái)的損失。
  5. 跨平臺(tái)支持:Git可以在各種操作系統(tǒng)上運(yùn)行,包括Windows、Linux和Mac等。這使得開(kāi)發(fā)人員可以在不同的平臺(tái)上進(jìn)行協(xié)作,提高了團(tuán)隊(duì)協(xié)作的效率。
  6. 強(qiáng)大的社區(qū)支持:Git是一個(gè)開(kāi)源項(xiàng)目,擁有龐大的社區(qū)支持。開(kāi)發(fā)人員可以輕松地找到相關(guān)的資料和解決方案,快速解決問(wèn)題。同時(shí),社區(qū)中還有很多開(kāi)源項(xiàng)目和工具可以使用,進(jìn)一步提高了開(kāi)發(fā)效率。

注意事項(xiàng):

還需要再明確?點(diǎn),所有的版本控制系統(tǒng),Git 也不例外,其實(shí)只能跟蹤?本?件的改動(dòng),?如 TXT ?件,??,所有的程序代碼等等。版本控制系統(tǒng)可以告訴你每次的改動(dòng),?如在第5?加了?個(gè)單詞 “Linux”,在第8?刪了?個(gè)單詞 “Windows”。

?圖?、視頻這些?進(jìn)制?件,雖然也能由版本控制系統(tǒng)管理,但沒(méi)法跟蹤?件的變化,只能把?進(jìn)制?件每次改動(dòng)串起來(lái),也就是只知道圖?從100KB改成了120KB,但到底改了啥,版本控制系統(tǒng)不知道,也沒(méi)法知道。

Git 安裝

Linux Ubuntu

首先使用 git 命令,看是否已經(jīng)下載 Git。

如果出現(xiàn)的是下面的頁(yè)面,表示的是已經(jīng)下載了 Git。

【Git】Git基本操作,git

而出現(xiàn)了 Command 'git' not found, but can be installed with: 則表示未安裝 Git。這時(shí)就需要使用 apt install git 命令來(lái)下載 Git。

【Git】Git基本操作,git
因?yàn)槲疫@里之前下載過(guò)了,所以我是用上面的命令并沒(méi)有真正下載。

當(dāng)我們下載 Git 了之后,可以使用 git --version 查看自己的 Git 版本。

【Git】Git基本操作,git

Linux CentOs

Linux CentOs 的查看和下載其實(shí)和 Ubuntu 差不多,只是下載 Git 的時(shí)候,CntOs 需要使用 yum 包管理器,所以就需要使用 yum install git 命令來(lái)下載。

Windows

Windows 下載的話大家就去看看這個(gè)視頻。

https://www.bilibili.com/video/BV1hf4y1W7yT/?p=3&vd_source=b57c3f3e8a7507d4af7322c28f05fdbc

Git 基本操作

【Git】Git基本操作,git

1. 創(chuàng)建 Git 本地倉(cāng)庫(kù)

倉(cāng)庫(kù)是進(jìn)?版本控制的?個(gè)?件?錄。我們要想對(duì)?件進(jìn)?版本控制,就必須先創(chuàng)建?個(gè)倉(cāng)庫(kù)出來(lái)。

創(chuàng)建一個(gè) Git 本地倉(cāng)庫(kù)的命令是 git init,命令要在文件目錄下執(zhí)行。

先使用 mkdir gitcode 創(chuàng)建一個(gè)文件目錄,作為我們的 Git 本地倉(cāng)庫(kù)。

【Git】Git基本操作,git

使用 mkdir 創(chuàng)建一個(gè)文件目錄之后,創(chuàng)建的只是一個(gè)普通的文件目錄,那么如何讓他成為一個(gè) Git 本地倉(cāng)庫(kù)呢?我們需要使用 git init 命令來(lái)創(chuàng)建一個(gè) Git 本地倉(cāng)庫(kù)。

【Git】Git基本操作,git
創(chuàng)建完成 Git 本地倉(cāng)庫(kù)之后,可以發(fā)現(xiàn)當(dāng)前文件目錄下出現(xiàn)了一個(gè) .git 隱藏文件目錄。

【Git】Git基本操作,git
.git ?錄是 Git 來(lái)跟蹤管理倉(cāng)庫(kù)的,不要?動(dòng)修改這個(gè)?錄??的?件,不然改亂了,就把 Git 倉(cāng)庫(kù)給破壞了。

然后我們使用 tree .git命令,可以查看 .git 文件的目錄結(jié)構(gòu)。

【Git】Git基本操作,git
這里每個(gè)結(jié)構(gòu)是干什么的,我們現(xiàn)在先不管,后面會(huì)為大家介紹。

2. 配置 Git

在創(chuàng)建完成 Git 本地倉(cāng)庫(kù)之后,我們還需要對(duì)這個(gè)倉(cāng)庫(kù)進(jìn)行配置,不然后面的操作可能就會(huì)出現(xiàn)問(wèn)題,這點(diǎn)是非常重要的。

在這里我們主要配置的就是 用戶名稱 e-mail地址 。

配置 Git 本地倉(cāng)庫(kù)的 用戶名稱 和 e-mail 地址需要用到 git config user.name "Your Name" 命令和 git config user.email "Your email"命令。

【Git】Git基本操作,git
那么我們?nèi)绾慰吹阶约盒薷牡呐渲媚??可以使?git config -l 查看當(dāng)前 Git 倉(cāng)庫(kù)的配置。

【Git】Git基本操作,git

但是如果我們想要?jiǎng)h除之前修改的配置該怎么做呢?可以使用 git config --unset user.name來(lái)刪除某個(gè)配置。

【Git】Git基本操作,git
這里我們刪除配置了之后,雖然查看配置的時(shí)候,前面刪除的配置項(xiàng)還可以看到,但是實(shí)際上我們不能夠使用這些配置了。這是因?yàn)椋?/p>

  • 使用git config -l命令。這個(gè)命令會(huì)列出所有的Git配置項(xiàng),包括那些已經(jīng)被刪除的配置項(xiàng)。這是因?yàn)镚it配置是持久化的,即使你刪除了某個(gè)配置項(xiàng),它仍然會(huì)保留在.git/config文件中,只是不再被Git使用。

使用 git config user.name "Your Name" 命令配置的只是當(dāng)前的 Git 本地倉(cāng)庫(kù),但是我們本地可以有多個(gè) Git 本地倉(cāng)庫(kù),如果我們想要讓設(shè)置的配置在本地所有 Git 倉(cāng)庫(kù)都生效的話,就需要在命令中添加 --global 選項(xiàng)。

【Git】Git基本操作,git
如果我們使用的是 --global 選項(xiàng)修改的 Git 配置的話,在刪除該配置的時(shí)候,也需要加上 --global 配置,否則就無(wú)法刪除成功。

【Git】Git基本操作,git
并且可以發(fā)現(xiàn):跟不加 --global 配置不同,加上 --global 配置之后,刪除配置,我們無(wú)法查看到刪除的配置了。

3. Git工作區(qū)、暫存區(qū)和版本庫(kù)

【Git】Git基本操作,git
Git本地倉(cāng)庫(kù)包括三個(gè)主要區(qū)域:工作區(qū)、暫存區(qū)和版本庫(kù)。

  1. 工作區(qū)(Working Directory):工作區(qū)是平時(shí)存放項(xiàng)目代碼的地方,也就是你克隆項(xiàng)目到本地后,項(xiàng)目所在的文件夾目錄。你在工作區(qū)中對(duì)代碼進(jìn)行的修改、新增、刪除等操作,都需要經(jīng)過(guò)Git的處理才能被記錄。
  2. 暫存區(qū)(Stage/Index):暫存區(qū)用于臨時(shí)存放你的改動(dòng),事實(shí)上只是一個(gè)文件,保存即將提交到文件列表信息。當(dāng)你使用git add .命令時(shí),會(huì)將本地所有新增、變更、刪除過(guò)的文件的情況存入暫存區(qū)中。這個(gè)區(qū)域的存在是為了讓你在提交前,能夠再次確認(rèn)和審查你的改動(dòng)。
  3. 版本庫(kù)(Repository):版本庫(kù)用于安全存放數(shù)據(jù)的位置,這里面有你提交到所有版本的數(shù)據(jù)。當(dāng)你使用git commit –m “本次操作描述”命令時(shí),會(huì)將添加到暫存區(qū)的修改的文件提交到本地倉(cāng)庫(kù)中。在版本庫(kù)中,HEAD指針會(huì)指向最新放入倉(cāng)庫(kù)的版本。你可以隨時(shí)回退到任何一個(gè)歷史版本,或者比較不同版本之間的差異。

工作區(qū)通常在我們 Git 本地倉(cāng)庫(kù)除 .git 文件目錄之外的其他文件目錄和文件;暫存區(qū)則是在 .git 文件目錄下的 index 文件(.git/index),我們把暫存區(qū)也叫做索引(index);我們的 .git 文件目錄則是版本庫(kù)。

在創(chuàng)建 Git 版本庫(kù)時(shí),Git 會(huì)為我們?動(dòng)創(chuàng)建?個(gè)唯?的 master 分?,以及指向 master 的?個(gè)指針叫 HEAD。(分?和HEAD的概念后?再說(shuō))

但是我們使用 tree .git 命令的時(shí)候?yàn)槭裁礇](méi)有看見(jiàn) index 文件呢?

【Git】Git基本操作,git
這是因?yàn)檫@個(gè) Git 本地倉(cāng)庫(kù)是我們新創(chuàng)建的,還沒(méi)有 add 和 commit,所以也就沒(méi)生成 index 文件。

當(dāng)對(duì)?作區(qū)修改(或新增)的?件執(zhí)? git add 命令時(shí),暫存區(qū)?錄樹(shù)的?件索引會(huì)被更新。

當(dāng)執(zhí)?提交操作 git commit 時(shí),master 分?會(huì)做相應(yīng)的更新,可以簡(jiǎn)單理解為暫存區(qū)的?錄樹(shù)才會(huì)被真正寫(xiě)到版本庫(kù)中。

通過(guò)新建或粘貼進(jìn)?錄的?件,并不能稱之為向倉(cāng)庫(kù)中新增?件,?只是在?作區(qū)新增了?件。必須要通過(guò)使? git add 和 git commit 命令才能將?件添加到倉(cāng)庫(kù)中進(jìn)?管理?。。?/font>

4. 添加文件

當(dāng)我們?cè)诠ぷ鲄^(qū)完成修改之后,需要使用 git add [file1] [file2]命令將修改的文件添加進(jìn)去暫存區(qū)中。

【Git】Git基本操作,git
git add 后面可以有多個(gè)參數(shù),也就是 git add [file1] [file2]... 一次 add 多個(gè)文件,git add 不僅可以支持參數(shù)為文件,參數(shù)也可以是目錄;使用 git add . 是將當(dāng)前目錄下所有修改過(guò)的文件添加進(jìn)暫存區(qū)中。

git commit 使用的時(shí)候需要加上 -m 選項(xiàng)以及此次 commit 的描述,這部分內(nèi)容是絕對(duì)不可以省略的,并要好好描述,因?yàn)檫@是?來(lái)記錄你的提交細(xì)節(jié),是給我們?看的。如果我們不加 ReadMe 文件名的話,就是使用 git commit -m "描述" 的話,意思就是將暫存區(qū)中所有的內(nèi)容提交到本地倉(cāng)庫(kù)中。

【Git】Git基本操作,git

commit 之后出現(xiàn)的日志會(huì)顯示出我們本次提交的描述以及提交了多少個(gè)文件,和文件中插入或者減少了多少行內(nèi)容。

【Git】Git基本操作,git
這次我們沒(méi)在文件中寫(xiě)入數(shù)據(jù),所以這里的插入就是0。

使用 git log 可以查看歷史提交記錄。

【Git】Git基本操作,git
git log 顯示的內(nèi)容是時(shí)間由據(jù)現(xiàn)在由近及遠(yuǎn)的順序。

(Head -> master)表示 Head 指針指向的 master 文件中的位置。

如果我們覺(jué)得 git log 顯示的數(shù)據(jù)看的不是很方便,我們可以添加 --pretty=oneline 選項(xiàng),使得顯示的數(shù)據(jù)更加美觀。

【Git】Git基本操作,git

這里的 3cafdca9e629aec30e2ac997a508c25705966019 是 commit id,它不是由簡(jiǎn)單的 1、2、3 得來(lái)的,而是經(jīng)過(guò)了哈希計(jì)算得來(lái)的哈希值。

5. 查看 .git 文件

【Git】Git基本操作,git

當(dāng)我們進(jìn)行了 add 和 commit 操作之后,就會(huì)發(fā)現(xiàn),跟之前的 .git 文件不同,這里新出現(xiàn)了 index(暫存區(qū))和 objects 文件/文件夾。

HEAD 就是我們默認(rèn)指向的 master 分支的指針:

【Git】Git基本操作,git

【Git】Git基本操作,git
【Git】Git基本操作,git

objects 為 Git 的對(duì)象庫(kù),??包含了創(chuàng)建的各種版本庫(kù)對(duì)象及內(nèi)容。當(dāng)執(zhí)? git add 命令時(shí),暫存區(qū)的?錄樹(shù)被更新,同時(shí)?作區(qū)修改(或新增)的?件內(nèi)容被寫(xiě)?到對(duì)象庫(kù)中的?個(gè)新的對(duì)象中,就位于 “.git/objects” ?錄下。

【Git】Git基本操作,git

objects 文件夾中的每個(gè) object 文件都是工作區(qū)每次修改的文件內(nèi)容,也就是說(shuō),其實(shí)實(shí)際數(shù)據(jù)是存放在 object 文件中的,而暫存區(qū)(索引)和 master 中存放的只是對(duì)應(yīng)的每個(gè) object 文件的索引。當(dāng)使用 add 操作將工作區(qū)中修改的內(nèi)容提交到暫存區(qū)中的時(shí)候,在暫存區(qū)中會(huì)生成一個(gè) object 文件和對(duì)應(yīng)的索引文件,object 文件中存放的是 add 的文件中的內(nèi)容,而索引文件中存放的是對(duì)應(yīng)的 object 文件的索引;當(dāng)使用 commit 操作之后,也是講暫存區(qū)中存在的索引文件提交到 master 文件中而已。

而通過(guò)觀察 commit id 和 .git/objects 文件可以發(fā)現(xiàn)其實(shí) commit id 可以分為兩個(gè)娃部分:其前2位是?件夾名稱,后38位是?件名稱。

3cafdca9e629aec30e2ac997a508c25705966019

【Git】Git基本操作,git
找到這個(gè)?件之后,?般不能直接看到??是什么,該類(lèi)?件是經(jīng)過(guò) sha (安全哈希算法)加密過(guò)的?件,但是我們可以使? git cat-file 命令來(lái)查看版本庫(kù)對(duì)象的內(nèi)容。

使用 git cat-file 需要加上 -p 選項(xiàng)。

【Git】Git基本操作,git
查看這個(gè)文件之后,會(huì)出現(xiàn)我們前面設(shè)置的 用戶名稱 和 用戶郵件地址,以及 tree,那么這個(gè) tree 是什么意思呢?我們繼續(xù)看 tree 中的 commit id。

【Git】Git基本操作,git

這個(gè) tree 對(duì)象表示提交時(shí)的項(xiàng)目狀態(tài)(即文件和目錄的布局)。tree 對(duì)象并不包含實(shí)際的項(xiàng)目數(shù)據(jù),只包含文件和目錄的元數(shù)據(jù)。它基本上就是一個(gè)指向?qū)嶋H文件的符號(hào)鏈接。

【Git】Git基本操作,git

這個(gè)是我們第一次提交的,根據(jù) commit id 觀察出來(lái)的內(nèi)容,而通過(guò)第二次 commit id 我們可以觀察出額外的信息。

【Git】Git基本操作,git
parent 部分顯示的是該 commit 的父 commit。一個(gè) commit 有多個(gè)父 commit 的情況叫做 merge commit。一個(gè)標(biāo)準(zhǔn)的提交(不是 merge commit)只有一個(gè)父 commit,那就是它前一次的提交。通過(guò)跟蹤這些父 commit,你可以回溯到歷史上的任意提交,這是 Git 版本控制的核心功能之一。

要想將工作區(qū)中修改的文件提交到版本庫(kù)中,需要經(jīng)過(guò) add 操作和 commit 操作,先將修改的文件添加到暫存區(qū),然后在添加到版本庫(kù)中才可以,如果少了 add 操作,是無(wú)法完成提交的。

【Git】Git基本操作,git
這里只有 file4 被添加進(jìn)了版本庫(kù)中,而 file5 由于沒(méi)有 add,所以并沒(méi)有最終添加到版本庫(kù)中。

【Git】Git基本操作,git

6. 修改文件

當(dāng)我們對(duì)文件做了修改的話,需要重新使用 add 操作和 commit 操作,將修改的文件添加進(jìn)版本庫(kù)中。

什么是修改??如你新增了??,這就是?個(gè)修改,刪除了??,也是?個(gè)修改,更改了某些字符,也是?個(gè)修改,刪了?些?加了?些,也是?個(gè)修改,甚?創(chuàng)建?個(gè)新?件,也算?個(gè)修改。

【Git】Git基本操作,git
此時(shí),倉(cāng)庫(kù)中的 ReadMe 和我們?作區(qū)的ReadMe是不同的,如何查看當(dāng)前倉(cāng)庫(kù)的狀態(tài)呢? git status 命令?于查看在你上次提交之后是否有對(duì)?件進(jìn)?再次修改。

【Git】Git基本操作,git
使用 git status 顯示出來(lái)的數(shù)據(jù)表示 ReadMe 文件被修改,并且當(dāng)前文件等待被 add。

【Git】Git基本操作,git
使用 add 之后再查看倉(cāng)庫(kù)狀態(tài)可以看到 ReadMe 文件被修改,并且這個(gè)文件等待被 commit。

【Git】Git基本操作,git

當(dāng)修改文件之后,我們又如何查看我們修改的內(nèi)容嗎?當(dāng)然可以,雖然我們可以直接查看文件中的內(nèi)容,然后對(duì)比差異,但是如果文件修改的內(nèi)容較多且間隔時(shí)間較長(zhǎng),我們又該如何區(qū)別呢?

git diff [file] 命令?來(lái)顯?暫存區(qū)和?作區(qū)?件的差異,顯?的格式正是Unix通?的diff格式。也可以使? git diff HEAD -- [file] 命令來(lái)查看版本庫(kù)和?作區(qū)?件的區(qū)別。

【Git】Git基本操作,git

  • diff --git a/ReadMe b/ReadMe:這行表示正在查看ReadMe文件在兩個(gè)不同版本之間的差異。
  • index 6b15c4f…7945298 100644:這行提供了有關(guān)文件的元數(shù)據(jù)。index 6b15c4f…7945298表示原始版本的文件內(nèi)容由SHA-1哈希值6b15c4f標(biāo)識(shí),而新版本的文件內(nèi)容由7945298標(biāo)識(shí)。100644是文件的權(quán)限模式,表示這是一個(gè)普通文件。
  • — a/ReadMe:這行表示原始版本的文件是ReadMe,位于a/目錄下。
  • +++ b/ReadMe:這行表示新版本的文件是ReadMe,位于b/目錄下。
  • @@ -1,3 +1,4 @@:這行表示差異的開(kāi)始。-1,3表示原始文件的開(kāi)始到第3行(不包括第3行),而+1,4表示新文件的開(kāi)始到第4行(不包括第4行)。
  • hello git、hello git、hello world:這些行顯示了原始文件的內(nèi)容。
  • +hello world:這行表示在新文件中添加了“hello world”這一行。

7. 版本回退

前面說(shuō)了 Git 能夠管理文件的歷史版本,這也是版本控制器的重要能力,就相當(dāng)于我們前面的項(xiàng)目規(guī)劃書(shū),就類(lèi)似前面的項(xiàng)目規(guī)劃書(shū),因?yàn)榘姹镜墓芾?,已?jīng)存在了三個(gè)版本的規(guī)劃書(shū),老板說(shuō)讓你在第二個(gè)版本的基礎(chǔ)上進(jìn)行修改,那么這時(shí)候你只需要拿出第二個(gè)版本的規(guī)劃書(shū)的原稿就可以了。

如果只是回退工作區(qū)中的文件的話,可以直接用 git checkout [fikeName]來(lái)回退。

【Git】Git基本操作,git

那么在 Git 中使用 git reset 命令用于版本的回退。git reset 命令語(yǔ)法格式為: git reset [--soft | --mixed | --hard] [HEAD]。

  • –mixed 為默認(rèn)選項(xiàng),使?時(shí)可以不?帶該參數(shù)。該參數(shù)將暫存區(qū)的內(nèi)容退回為指定提交版本內(nèi)容,工作區(qū)?件保持不變。
  • –soft 參數(shù)對(duì)于工作區(qū)和暫存區(qū)的內(nèi)容都不變,只是將版本庫(kù)回退到某個(gè)指定版本。
  • –hard 參數(shù)將暫存區(qū)與工作區(qū)都退回到指定版本。切記工作區(qū)有未提交的代碼時(shí)不要?這個(gè)命令,因?yàn)楣ぷ鲄^(qū)會(huì)回滾,你沒(méi)有提交的代碼就再也找不回了,所以使?該參數(shù)前?定要慎重。
  • HEAD 說(shuō)明:
    • 可直接寫(xiě)成 commit id,表?指定退回的版本
    • HEAD 表?當(dāng)前版本
    • HEAD^ 上?個(gè)版本
    • HEAD^^ 上上?個(gè)版本
    • 以此類(lèi)推…
  • 可以使用 ? 數(shù)字表示:
    • HEAD~0 表?當(dāng)前版本
    • HEAD~1 上?個(gè)版本
    • HEAD^2 上上?個(gè)版本
    • 以此類(lèi)推…

我們先準(zhǔn)備下數(shù)據(jù):

【Git】Git基本操作,git

【Git】Git基本操作,git
假設(shè)我們現(xiàn)在需要將該文件恢復(fù)到第二次提交的情況,那么就需要更改工作區(qū)、暫存區(qū)和版本庫(kù)中的數(shù)據(jù),那么就需要用到 --hard 選項(xiàng)。

通過(guò)觀察test1文件中的內(nèi)容和 git log --pretty=oneline 顯示的數(shù)據(jù)我們可以看到當(dāng)前 test1 的版本已經(jīng)回到了第二次的版本了。
【Git】Git基本操作,git
【Git】Git基本操作,git
如果我們現(xiàn)在又想回到第三個(gè)版本的話,該怎么辦呢?前面說(shuō)了 git reset 命令后面的參數(shù)可以是 commit id,所以我們就可以將后面的參數(shù)改為第三次提交的 commit id。

【Git】Git基本操作,git

雖然我們可以使用 commit id 回退到指定的版本,但是如果我們因?yàn)楣ぷ鲿r(shí)間太長(zhǎng),不能夠直接從終端找到 commit id 或者 commit id 丟失了之后的話,別著急,我們可以使用 git reflog 補(bǔ)救一下,該命令?來(lái)記錄本地的每?次命令。

【Git】Git基本操作,git
【Git】Git基本操作,git
這里并沒(méi)有出現(xiàn)前面類(lèi)似的 commit id ,而是出現(xiàn)了 1bb6079 這樣的數(shù)字,那么這是什么呢?這其實(shí)是 commit id 中的一部分,通過(guò) commit id 的這一部分是可以回到指定的版本的。

【Git】Git基本操作,git

值得說(shuō)的是,Git 的版本回退速度????,因?yàn)?Git 在內(nèi)部有個(gè)指向當(dāng)前分?(此處是master)的 HEAD 指針, refs/heads/master 文件?保存當(dāng)前 master 分?的最新 commit id 。當(dāng)我們?cè)诨赝税姹镜臅r(shí)候,Git 僅僅是給 refs/heads/master 中存儲(chǔ)?個(gè)特定的version,可以簡(jiǎn)單理解成如下?意圖:

【Git】Git基本操作,git
當(dāng)需要回退的時(shí)候,只需要更改 .git/refs/heads/master 中存儲(chǔ)的 version 版本就可以了。

【Git】Git基本操作,git

使用 git reset 的前提是,在 commit 之后沒(méi)有使用 push 操作將本地倉(cāng)庫(kù)的文件提交到遠(yuǎn)程倉(cāng)庫(kù)中,如果已經(jīng) push 將本地倉(cāng)庫(kù)的文件提交到遠(yuǎn)程倉(cāng)庫(kù)的話,再使用 git reset 的話,遠(yuǎn)程倉(cāng)庫(kù)的文件是沒(méi)有修改的,而如果有遠(yuǎn)程倉(cāng)庫(kù)的話,我們最終看的還是遠(yuǎn)程倉(cāng)庫(kù)的文件,所以使用 git reset 的前提是沒(méi)有將本地倉(cāng)庫(kù)的文件 push 到遠(yuǎn)程倉(cāng)庫(kù)之前。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-760358.html

到了這里,關(guān)于【Git】Git基本操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Git基本操作筆記

    Git基本操作筆記

    ????????Git在我們?nèi)粘9ぷ髦惺潜夭豢缮俚?,剛?cè)肼毜膶?shí)習(xí)生可能只要會(huì)安裝git、git clone,git pull 即可,git安裝的教程有很多我就不一一講述了。 ????????Windows安裝教程請(qǐng)?jiān)L問(wèn)此博主的鏈接 Git安裝教程-window版本 · 語(yǔ)雀 在平常開(kāi)發(fā)中,我們肯定需要用到git,這里我給大

    2024年02月02日
    瀏覽(27)
  • Git基本操作(1)

    Git基本操作(1)

    前面我們配置了git還有遠(yuǎn)程倉(cāng)庫(kù),今天我們來(lái)了解一下git的基本操作。 首先,我們?cè)谘b好git之后,我們就要初始化一個(gè)git倉(cāng)庫(kù),我們可以用命令行 git init 來(lái)初始化一個(gè)git本地倉(cāng)庫(kù),首先我們創(chuàng)建一個(gè)文件夾: 我們進(jìn)入到gitcode文件夾,使用 git init 命令: 我們查看隱藏文件,

    2024年03月10日
    瀏覽(45)
  • git 的基本操作

    git 的基本操作

    1. git建立本地倉(cāng)庫(kù) 在想要建立的目錄下輸入命令 git init 我們可以看一下 .git目錄下有什么 ? 2. 配置git本地倉(cāng)庫(kù)? 配置用戶的 name 和 email 命令:git config [...] 配置完后,我們像查看一下 剛才的配置 2.1 查看配置命令 git config -l 2.2 刪除配置? 命令:git config --unset [...] 查看配置

    2024年02月11日
    瀏覽(22)
  • git的基本操作

    在工作過(guò)程中,有時(shí)會(huì)用公司的電腦進(jìn)行項(xiàng)目開(kāi)發(fā),或者使用個(gè)人電腦,但是git的一些默認(rèn)配置,需要更改,可以按照下面方式完成。 在實(shí)際項(xiàng)目開(kāi)發(fā)中,經(jīng)常會(huì)遇到,剛開(kāi)始,并沒(méi)有創(chuàng)建遠(yuǎn)程倉(cāng)庫(kù),只是通過(guò)git相關(guān)操作,在本地管理項(xiàng)目,如果需要將項(xiàng)目推送到遠(yuǎn)程項(xiàng)目,

    2024年02月09日
    瀏覽(22)
  • Git基本操作命令

    Git基本操作命令

    目錄 一、簡(jiǎn)介 二、基本命令使用 (1) git add ---將該文件添加到暫存區(qū) (2) git status --- 命令用于查看在上次提交之后是否有對(duì)文件進(jìn)行再次修改 (3) git diff -- 比較文件在暫存區(qū)和工作區(qū)的差異 (4) git commit? ---?將暫存區(qū)內(nèi)容添加到本地倉(cāng)庫(kù)中 (5) git reset --指定退回某一次提交的版

    2024年02月05日
    瀏覽(48)
  • Git--基本操作介紹(2)

    Git--基本操作介紹(2)

    Git 常用的是以下 6 個(gè)命令: git clone、git push、git add 、git commit、git checkout、git pull . 說(shuō)明: workspace:工作區(qū) staging area:暫存區(qū)/緩存區(qū) local repository:版本庫(kù)或本地倉(cāng)庫(kù) remote repository:遠(yuǎn)程倉(cāng)庫(kù) 一個(gè)簡(jiǎn)單的操作步驟: git init - 初始化倉(cāng)庫(kù) 。 git add . - 添加文件到暫存區(qū) 。 gi

    2024年01月24日
    瀏覽(22)
  • 02.Git常用基本操作

    02.Git常用基本操作

    (1)打開(kāi)Git Bash (2)配置姓名和郵箱 ? ? ? ? 因?yàn)镚it是分布式版本控制工具,所以每個(gè)用戶都需要有自己的名字和郵箱。 ? ? ? ? --global參數(shù),表示該分支上的所有Git倉(cāng)庫(kù)都使用這個(gè)配置。 (3)查看配置信息 (1)clone(克隆):從遠(yuǎn)程倉(cāng)庫(kù)中克隆代碼到本地倉(cāng)庫(kù); (2)ch

    2024年02月04日
    瀏覽(15)
  • 【Git】安裝以及基本操作

    【Git】安裝以及基本操作

    努力經(jīng)營(yíng)當(dāng)下,直至未來(lái)明朗! 版本控制器:記錄每次的修改以及版本迭代的一個(gè)管理系統(tǒng)。 Git:其實(shí)就是最常用的版本控制器??梢跃S護(hù)控制電腦上 所有格式 的文檔。 如:對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),最主要就是維護(hù)項(xiàng)目中的源代碼文件。 注意:對(duì)于二進(jìn)制文件如圖片、視頻等

    2024年02月13日
    瀏覽(24)
  • Git基本操作(超詳細(xì))

    Git基本操作(超詳細(xì))

    倉(cāng)庫(kù)是進(jìn)?版本控制的?個(gè)?件?錄 我們要想對(duì)?件進(jìn)?版本控制,就必須先創(chuàng)建?個(gè)倉(cāng)庫(kù)出來(lái)。 首先創(chuàng)建一個(gè) gitcode 目錄來(lái)存放git, 創(chuàng)建?個(gè)Git本地倉(cāng)庫(kù)對(duì)應(yīng)的命令為 git init 查看當(dāng)前目錄,發(fā)現(xiàn)多了個(gè)隱藏文件 .git .git ?錄是Git來(lái)跟蹤管理倉(cāng)庫(kù)的,不要?動(dòng)修改這個(gè)?錄

    2024年02月20日
    瀏覽(20)
  • 【Git-9】Eclipse安裝Git插件及基本操作

    【Git-9】Eclipse安裝Git插件及基本操作

    選擇? Help ?–? Install New Software... 插件名稱自定義, 插件地址為:http://download.eclipse.org/egit/updates/?。 3.1、選擇需要下載安裝的插件 3.2、 列出需要下載資源文件,選擇? 下一步 3.3、同意協(xié)議,選擇? Finish ,開(kāi)始安裝插件。 舊版本的Eclipse需要配置? TLSv ?協(xié)議。 ini配置文件

    2023年04月11日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包