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

Git分布式管理-頭歌實(shí)驗(yàn)日志和版本回退

這篇具有很好參考價(jià)值的文章主要介紹了Git分布式管理-頭歌實(shí)驗(yàn)日志和版本回退。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Git使用過程中,一種很常見的情況是:發(fā)現(xiàn)某個(gè)已經(jīng)提交到倉(cāng)庫(kù)里的代碼文件有致命的bug,必須將代碼回滾到上一個(gè)版本,在這種情況下就顯示出了Git的強(qiáng)大。Git為每次提交,都保留了日志,根據(jù)提交日志,Git可以方便地進(jìn)行版本回退。本實(shí)訓(xùn)通過介紹Git日志相關(guān)知識(shí)和操作,使大家掌握Git版本回退相關(guān)內(nèi)容。

一、回到前一次提交??git revert

任務(wù)描述

如果提交到本地倉(cāng)庫(kù)中的代碼發(fā)現(xiàn)了bug,就必須將代碼回到上一個(gè)版本。而在Git中,一次提交就對(duì)應(yīng)著一個(gè)版本,因此可以根據(jù)日志信息進(jìn)行版本回退。

本關(guān)任務(wù):將本地倉(cāng)庫(kù)回退到上一個(gè)版本。

相關(guān)知識(shí)
強(qiáng)大的git log

在之前,我們已經(jīng)介紹了git log的基本使用方法,這里我們要進(jìn)一步介紹git log的使用。

  • 查看提交的內(nèi)容差異?git log提供了-p參數(shù),用于查看每次提交之間的內(nèi)容差異,如下:   git log -p?即可顯示每次提交之間的變化:頭歌第一關(guān)git入門之日志和版本回退,git管理,git
  • 而如果想限制顯示的范圍,則可以再添加參數(shù)用于限定:   
    git log -p -2 
    如上,則僅顯示最近的兩次更新。 如上所示,這一選項(xiàng)附帶了每次commit的內(nèi)容變化,這就為代碼審查或者瀏覽某個(gè)搭檔的修改內(nèi)容,提供了很好的參考。
  • 其他git log選項(xiàng):

    1. 單詞層面對(duì)比 Git提供了--word-diff選項(xiàng),可以顯示單詞層面的差異。當(dāng)需要在書籍、論文這種很大的文本文件上,進(jìn)行對(duì)比的時(shí)候,這個(gè)功能就非常有用。

    2. 顯示簡(jiǎn)要的增改行數(shù) Git提供了--stat選項(xiàng),則可以僅顯示增加或者減少了多少行。

    3. pretty選項(xiàng) 使用--pretty 選項(xiàng)選項(xiàng),可以指定不同的顯示屬性,如oneline 將每個(gè)提交放在一行顯示。 short,fullfuller 可以指定展示的信息的多少。

git revert實(shí)現(xiàn)版本回退

版本回退可以用git revert命令。git revert撤銷提交時(shí),會(huì)保留所撤銷的提交的記錄和歷史,并將撤銷操作做為一次新的提交。即提交一個(gè)新的版本,將需要revert的版本的內(nèi)容再反向修改回去,版本會(huì)遞增,不影響之前提交的內(nèi)容。其具體的使用方法如下:頭歌第一關(guān)git入門之日志和版本回退,git管理,git

git reset實(shí)現(xiàn)版本回退

git reset也能實(shí)現(xiàn)版本回退,但是git revertgit reset也存在一定的區(qū)別 :

  • git revert是用一次新的commit來回滾之前的commit,git reset是直接刪除指定的commit;
  • 在回滾這一操作上看,效果差不多。但是,在日后繼續(xù)merge以前的老版本時(shí)有區(qū)別。因?yàn)?code>git revert是用一次逆向的commit,“中和”之前的提交,因此日后合并老的branch時(shí),導(dǎo)致這部分改變不會(huì)再次出現(xiàn)。但是git reset是把某些commit在某個(gè)branch上刪除,因而和老的branch再次merge時(shí),這些被回滾的commit應(yīng)該還會(huì)被引入;
  • git reset?是把HEAD向后移動(dòng)了一下,而git revertHEAD繼續(xù)前進(jìn),只是新的commit的內(nèi)容和要revert的內(nèi)容正好相反,能夠抵消要被revert的內(nèi)容。

git reset用法如下:

  • git reset HEAD?回到前一次?commit。也可以用于將錯(cuò)誤的文件添加進(jìn)暫存區(qū)后,想回退取消,如:   git reset HEAD 文件名
  • git reset HEAD^?回到前前一次?commit。
  • git reset commit?比如:commit = fa042ce57ebbe5b,回到指定的版本,撤銷也會(huì)作為一次提交進(jìn)行保存。

另外git reset也可以指定reset的模式:hard、softmixed、mergedkeep。 這幾種模式的差別如下:

  • --soft?緩存區(qū)和工作目錄都不會(huì)被改變;
  • --mixed?– 默認(rèn)選項(xiàng)。緩存區(qū)和你指定的提交同步,但工作目錄不受影響;
  • --hard?– 緩存區(qū)和工作目錄,都同步到你指定的提交。

幾種模式的具體使用方法如下:

#直接丟棄工作區(qū)和暫存區(qū)的修改
git reset --hard HEAD
#暫存區(qū)內(nèi)容保留,工作區(qū)修改丟棄
git reset --mixed HEAD
#暫存區(qū)和工作區(qū)內(nèi)容都保留
git reset --soft HEAD
編程要求

平臺(tái)已準(zhǔn)備了本地倉(cāng)庫(kù)gitTraining,并在master分支進(jìn)行了三次提交:

  • 第一次提交:添加了helloGit1
  • 第二次提交:添加了helloGit2;
  • 第三次提交:添加了helloGit3

現(xiàn)在發(fā)現(xiàn),helloGit3內(nèi)容有錯(cuò)誤,需要撤銷第三次提交,即將HEAD指向第二次提交。 本關(guān)的編程任務(wù)是,補(bǔ)全右側(cè)代碼片段中BeginEnd中間的腳本,撤銷最近一次提交。

#進(jìn)入gitTraining
cd gitTraining

#請(qǐng)?jiān)谙路紹egin至End星號(hào)線內(nèi)填寫git命令以撤銷最近一次提交
#********** Begin **********#

#git reset --hard HEAD~1
git revert HEAD 
#********** End **********#

?

?二、回到指定提交

編程要求

平臺(tái)已準(zhǔn)備了本地倉(cāng)庫(kù)gitTraining,并在master分支進(jìn)行了三次提交:

  • 第一次提交:添加了helloGit1;
  • 第二次提交:添加了helloGit2;
  • 第三次提交:添加了helloGit3。

現(xiàn)在發(fā)現(xiàn),helloGit3、helloGit2內(nèi)容均有錯(cuò)誤,需要撤銷第三次、第二次提交。即將HEAD指向第一次提交。 本關(guān)的編程任務(wù)是,補(bǔ)全右側(cè)代碼片段中BeginEnd中間的腳本,撤銷最近兩次提交,以回到第一次提交,即將HEAD指向第一次提交,需要選擇--hard模式。

#進(jìn)入gitTraining
cd gitTraining

#請(qǐng)?jiān)谙路紹egin至End星號(hào)線內(nèi)填寫git命令以回到第一次提交的版本
#********** Begin **********#

git reset --hard HEAD~2
#********** End **********#

`git reset --hard HEAD~2` **命令用于將當(dāng)前分支回退到上一個(gè)提交(commit),同時(shí)清除工作目錄和暫存區(qū)的改動(dòng)**。

該命令由三部分組成:

1. `git reset`: 這是Git的一個(gè)基本命令,用來重置當(dāng)前分支的HEAD指針以及工作目錄和暫存區(qū)的狀態(tài)。
2. `--hard`: 這個(gè)選項(xiàng)告訴Git不僅要移動(dòng)HEAD指針,還要清除所有相關(guān)的改動(dòng),包括工作目錄和暫存區(qū)的更改。
3. `HEAD~2`: 這里的`HEAD`代表當(dāng)前分支最新的提交,而`~2`表示要回退到當(dāng)前提交的前兩個(gè)版本,即祖父級(jí)提交。

使用這個(gè)命令時(shí)需要非常小心,因?yàn)樗鼤?huì)丟棄自指定提交之后的所有工作成果,包括未提交的修改和新增的文件。如果確定要執(zhí)行這樣的操作,建議先備份重要的工作內(nèi)容,以防萬一。

#進(jìn)入gitTraining
cd gitTraining

#請(qǐng)?jiān)谙路紹egin至End星號(hào)線內(nèi)填寫git命令以回到第一次提交的版本
#********** Begin **********#
git revert HEAD~2..HEAD
#git reset --hard HEAD~2
#********** End **********#

?`git revert HEAD~2..HEAD` **命令用于撤銷當(dāng)前分支中最近兩個(gè)提交的更改**。

該命令由兩部分組成:

1. `git revert`: 這是Git的一個(gè)基本命令,用來創(chuàng)建一個(gè)新的提交,該提交會(huì)撤銷指定范圍內(nèi)的提交的更改。
2. `HEAD~2..HEAD`: 這里的`HEAD`代表當(dāng)前分支最新的提交,而`~2`表示要回退到當(dāng)前提交的前兩個(gè)版本,即祖父級(jí)提交。`..`表示范圍,所以`HEAD~2..HEAD`表示從祖父級(jí)提交到當(dāng)前提交的范圍。

使用這個(gè)命令時(shí),Git會(huì)自動(dòng)生成一個(gè)新的提交,該提交會(huì)撤銷指定范圍內(nèi)所有提交的更改。這樣做的好處是保留歷史記錄,并且不會(huì)對(duì)工作目錄和暫存區(qū)產(chǎn)生任何影響。但是,如果需要撤銷的提交非常多,那么執(zhí)行這個(gè)命令可能會(huì)比較耗時(shí)。

三、?撤銷修改

任務(wù)描述

在本地開發(fā)中,經(jīng)常遇到的一個(gè)問題是:對(duì)一個(gè)文件的修改有錯(cuò)誤,需要丟棄修改。如何準(zhǔn)確地丟棄指定的修改,是一個(gè)關(guān)鍵的操作。

本關(guān)任務(wù):撤銷本地的修改。

相關(guān)知識(shí)
git reset實(shí)現(xiàn)版本回退

當(dāng)將有錯(cuò)誤的文件add進(jìn)暫存區(qū)后,可以使用git reset丟棄修改。即:

git reset HEAD 文件名

但此時(shí)修改仍舊保留在工作區(qū)。

如果尚未add進(jìn)暫存區(qū),則可以使用:

 git reset --hard HEAD

這樣就能徹底丟棄修改,即將修改從暫存區(qū)及工作區(qū)徹底刪除。 #####git checkout丟棄修改 當(dāng)將錯(cuò)誤的文件add進(jìn)暫存區(qū)后,使用git checkout無法將修改從暫存區(qū)中撤銷,必須要先使用git reset將修改從暫存區(qū)中撤銷。

git checkout丟棄修改

當(dāng)將錯(cuò)誤的文件add進(jìn)暫存區(qū)后,使用git checkout無法將修改從暫存區(qū)中撤銷,必須要先使用git reset將修改從暫存區(qū)中撤銷。

git chekcout -- hello

通過這種方式,就可將hello文件自上個(gè)commit之后,尚未add進(jìn)暫存區(qū)的修改丟棄。

編程要求

平臺(tái)已為你準(zhǔn)備了本地倉(cāng)庫(kù)gitTraining,并在master分支進(jìn)行了一次提交,將文件helloGit提交到了本地倉(cāng)庫(kù)。隨后,平臺(tái)又對(duì)helloGit進(jìn)行了修改,但是尚未添加(即add)到暫存區(qū)。現(xiàn)在發(fā)現(xiàn)此修改有錯(cuò)誤需要丟棄。

本關(guān)的編程任務(wù)是,補(bǔ)全右側(cè)代碼片段中BeginEnd中間的腳本,丟棄helloGit中尚未添加到暫存區(qū)的修改。

#進(jìn)入gitTraining
cd gitTraining

#請(qǐng)?jiān)谙路紹egin至End星號(hào)線內(nèi)填寫git命令以丟棄helloGit的修改
#********** Begin **********#

#git checkout -- helloGit
git reset --hard HEAD
#********** End **********#

四、刪除文件

任務(wù)描述

Git使用過程中,涉及到撤回的操作,還有從暫存區(qū)或者分支刪除文件。比如你錯(cuò)誤地將測(cè)試過程中產(chǎn)生的日志文件提交到了暫存區(qū)或者分支上面去了,那么你可能就需要?jiǎng)h除文件。

本關(guān)任務(wù):徹底刪除本地倉(cāng)庫(kù)中某個(gè)文件。

相關(guān)知識(shí)

刪除文件需要用到的命令是git rm,且git rm有參數(shù)--cached。 當(dāng)我們需要?jiǎng)h除暫存區(qū)或分支上的文件,同時(shí)工作區(qū)也不再需要這個(gè)文件了,可以使用:

git rm 文件路徑

當(dāng)我們需要?jiǎng)h除暫存區(qū)或分支上的文件,但本地又需要使用, 只是不希望這個(gè)文件被提交到版本庫(kù),可以使用:

git rm --cached 文件路徑
文件已添加至?xí)捍鎱^(qū)

如果文件被添加到了暫存區(qū),這種情況下直接使用git rm file_path會(huì)報(bào)錯(cuò):

$ git rm hello.txt
error: the following file has changes staged in the index:
    hello.txt
(use --cached to keep the file, or -f to force removal)

根據(jù)提示我們可以得知,這個(gè)時(shí)候,如果不想保留hello.txt,則可以使用:

 git rm hello.txt -f

如果想保留hello.txt到工作區(qū)則可以使用:

git rm --cached hello.txt
文件已提交至分支

如果文件已經(jīng)被提交到了某個(gè)分支,則可以使用如下命令:

#從當(dāng)前分支中徹底刪除‘文件路徑’指定的文件
git rm 文件路徑

具體使用方法如:

git rm hello.txt

或者:

#從本地版本庫(kù)中將‘文件路徑’指定的文件刪除,并保留到工作區(qū)
git rm --cached 文件路徑

具體使用方法如下:

git rm --cached hello.txt

但是無論使用哪種方式,都相當(dāng)于在本地做了修改,在git rm --cached之后,使用git status查看版本庫(kù)狀態(tài),可以得到如下輸出:頭歌第一關(guān)git入門之日志和版本回退,git管理,git

因此,還需要通過git commit操作將修改提交。

通過以上分析可知,從倉(cāng)庫(kù)中刪除文件的一般過程為:

git rm <--cached> 文件名
git commit -m "提交信息"
編程要求

平臺(tái)已為你準(zhǔn)備了本地倉(cāng)庫(kù)gitTraining,并在master分支進(jìn)行了一次提交,將文件helloGit提交到了本地倉(cāng)庫(kù)?,F(xiàn)在需要將helloGit從版本庫(kù)刪除,但還需要將其保留在工作區(qū)。 本關(guān)的編程任務(wù)是,補(bǔ)全右側(cè)代碼片段中BeginEnd中間的腳本,將helloGit從本地版本庫(kù)中刪除,但仍保留在工作區(qū)。

#進(jìn)入gitTraining
cd gitTraining

#請(qǐng)?jiān)谙路紹egin至End星號(hào)線內(nèi)填寫git命令以丟棄helloGit的修改
#********** Begin **********#


git rm --cached helloGit
#********** End **********#

?文章來源地址http://www.zghlxwxcb.cn/news/detail-855864.html

到了這里,關(guān)于Git分布式管理-頭歌實(shí)驗(yàn)日志和版本回退的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

  • Linux | 分布式版本控制工具Git【版本管理 + 遠(yuǎn)程倉(cāng)庫(kù)克隆】

    Linux | 分布式版本控制工具Git【版本管理 + 遠(yuǎn)程倉(cāng)庫(kù)克隆】

    本文來為讀者介紹一下分布式版本控制工具Git,可能你聽說過Gitee/GitHub,里面都帶有g(shù)it的字樣,那它們和Git之間有什么關(guān)聯(lián)呢? Git又是何物,讓我們一起走進(jìn)本文的學(xué)習(xí)?? Git(讀音為/g?t/)是一個(gè) 開源的分布式版本控制系統(tǒng) ,可以有效、高速地處理從很小到非常大的項(xiàng)目

    2024年02月01日
    瀏覽(33)
  • 手把手教會(huì)Git分布式系統(tǒng)版本管理工具

    手把手教會(huì)Git分布式系統(tǒng)版本管理工具

    前言 一、Git是什么? 1.1?版本控制器的概念 1.2 Git的強(qiáng)大 1.3 Git的安裝 二、Git 基本操作 2.1?創(chuàng)建 Git 本地倉(cāng)庫(kù) 2.2?認(rèn)識(shí)?作區(qū)、暫存區(qū)、版本庫(kù) 2.3 add、commit命令 2.4 Git log命令 2.5 .git文件 index: 暫存區(qū),git add 后會(huì)更新該內(nèi)容。 HEAD: 默認(rèn)指向 master 分?的?個(gè)指針。 refs/heads/ma

    2024年04月14日
    瀏覽(26)
  • 分布式版本管理系統(tǒng)---->Git(Linux---centos(保姆式)講解1)

    分布式版本管理系統(tǒng)---->Git(Linux---centos(保姆式)講解1)

    文章目錄: 前言: ? ? ? ? 本文章是講解Git的相關(guān)操作的,深刻理解Git的操作過程與操作,掌握Git企業(yè)級(jí)的應(yīng)用,從0開始講解Git。 文章正式開始: 1:什么是Git 以及作用 ? ? ? ? 首先在講解什么是Git之前我們先來聊一聊關(guān)于我們工作中的一個(gè)場(chǎng)景: ? ? ? ? 我們?nèi)粘T诠ぷ鞯臅r(shí)

    2024年02月05日
    瀏覽(25)
  • 軟件測(cè)試/測(cè)試開發(fā)/全日制/測(cè)試管理丨Git分布式版本控制系統(tǒng)

    軟件測(cè)試/測(cè)試開發(fā)/全日制/測(cè)試管理丨Git分布式版本控制系統(tǒng)

    分布式版本控制: Git是一種分布式版本控制系統(tǒng),每個(gè)開發(fā)者都可以擁有完整的代碼倉(cāng)庫(kù)的拷貝,不依賴中央服務(wù)器。這使得團(tuán)隊(duì)成員可以在本地獨(dú)立工作,并且不需要持續(xù)的網(wǎng)絡(luò)連接。 代碼倉(cāng)庫(kù): Git用來存儲(chǔ)代碼的地方被稱為倉(cāng)庫(kù)(Repository)。倉(cāng)庫(kù)可以分為本地倉(cāng)庫(kù)和遠(yuǎn)程

    2024年01月18日
    瀏覽(31)
  • 頭歌Educoder云計(jì)算與大數(shù)據(jù)——實(shí)驗(yàn)三 分布式文件系統(tǒng)HDFS

    頭歌Educoder云計(jì)算與大數(shù)據(jù)——實(shí)驗(yàn)三 分布式文件系統(tǒng)HDFS

    本關(guān)任務(wù):使用Hadoop命令來操作分布式文件系統(tǒng)。 為了完成本關(guān)任務(wù)你需要了解的知識(shí)有:1.HDFS的設(shè)計(jì),2.HDFS常用命令。 HDFS的設(shè)計(jì) 點(diǎn)點(diǎn)點(diǎn)…題目省略,懶得寫了,下同 分布式文件系統(tǒng) NameNode與DataNode HDFS的常用命令 在右側(cè)命令行中啟動(dòng)Hadoop,進(jìn)行如下操作。 在HDFS中創(chuàng)建

    2024年02月13日
    瀏覽(95)
  • 頭歌Educoder云計(jì)算與大數(shù)據(jù)——實(shí)驗(yàn)五 Java API分布式存儲(chǔ)

    原始電商數(shù)據(jù)都是存儲(chǔ)在關(guān)系型數(shù)據(jù)庫(kù)或 NoSQL 數(shù)據(jù)庫(kù)上的,是面向OLTP(聯(lián)機(jī)事務(wù)處理過程)的;數(shù)據(jù)都是面向業(yè)務(wù)的,而不是面向分析。因此數(shù)據(jù)比較復(fù)雜,表很多關(guān)聯(lián)的數(shù)據(jù)是分散的,不利于統(tǒng)計(jì)分析;因此需要把數(shù)據(jù)從多個(gè)表里導(dǎo)出來、聯(lián)合起來,找出分析所需要的數(shù)據(jù)項(xiàng)

    2023年04月09日
    瀏覽(94)
  • 分布式版本控制git

    分布式版本控制git

    遠(yuǎn)端倉(cāng)庫(kù) git init --bare 別名: origin 本地倉(cāng)庫(kù) git clone … SSH協(xié)議是一個(gè)驗(yàn)證授權(quán)的網(wǎng)絡(luò)協(xié)議; 使用ssh公鑰登錄git服務(wù)器: 生成公鑰和私鑰(ssh-keygen -t rsa) 安裝openssh server (可省略) 復(fù)制公鑰內(nèi)容到遠(yuǎn)端服務(wù)器.ssh/authorized_ keys git clone ssh://mark@ 192.168.31.91:/home/mark/mathlib 暫存(git add) 提交

    2024年02月11日
    瀏覽(30)
  • Git分布式版本控制工具

    Git分布式版本控制工具

    1.應(yīng)用場(chǎng)景 備份 代碼還原 協(xié)同開發(fā) 追溯問題代碼的編寫人和編寫時(shí)間 2.Git安裝與常用命令 ls/ll:查看當(dāng)前目錄 cat:查看文件內(nèi)容 touch:創(chuàng)建文件 vi:vi編輯器,vi+文件名,(使用vi編輯器方便展示效果) 在vi編輯器中,按下鍵盤上的Esc鍵,確保你處于正常模式(Normal Mode)。

    2024年02月12日
    瀏覽(28)
  • 分布式版本控制工具——git

    分布式版本控制工具——git

    ?1主頁(yè)::我的代碼愛吃辣 ??2知識(shí)講解:Linux——git ??3開發(fā)環(huán)境:Centos7 ??4前言:git是一個(gè)開源的分布式版本控制系統(tǒng),可以有效、高速地處理從很小到非常大的項(xiàng)目版本管理。? 也是Linus Torvalds為了幫助管理Linux內(nèi)核開發(fā)而開發(fā)的一個(gè)開放源碼的版本控制軟件。 目錄

    2024年02月09日
    瀏覽(28)
  • Git 分布式版本控制工具

    Git 分布式版本控制工具

    Git是一個(gè)分布式版本控制工具,主要用于管理開發(fā)過程中的源代碼文件(Java類、xml文件、html頁(yè)面等),在軟件開發(fā)過程中被廣泛使用。 在IDEA開發(fā)工具中可以集成Git(后面會(huì)講解Git安裝和集成過程): 集成后在IDEA中可以看到Git相關(guān)圖標(biāo): 可以通過啟動(dòng)兩個(gè)IDEA窗口模擬兩個(gè)

    2024年02月06日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包