欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)邀請(qǐng)碼778899分享:Git 時(shí)光穿梭

柚子快報(bào)邀請(qǐng)碼778899分享:Git 時(shí)光穿梭

http://yzkb.51969.com/

文章目錄

一、問題引入二、前置知識(shí)三、工作區(qū)暫存區(qū)和版本庫(kù)四、版本回退1、版本回退命令2、四大常見場(chǎng)景3、刪除文件

總結(jié)

一、問題引入

假設(shè)這樣一個(gè)場(chǎng)景:有一天你的老板讓你整理一份報(bào)告,結(jié)果你很輕松的整理完了第一版,但是你的老板并不滿意,于是老板給你不斷的提出建議,你不斷的修改,于是報(bào)告就迭代出了版本1、版本2、版本3……但是老板拿到最新版本的報(bào)告之后,搖了搖頭說:“我還是覺得版本1比較好,你把版本1拿給我吧”。這個(gè)時(shí)候你可能想“殺”他的心都有了,因?yàn)槟闶窃谝粋€(gè)報(bào)告中迭代的,版本1你早就不知道長(zhǎng)什么樣了。

這次經(jīng)歷之后,你留了一個(gè)心眼,每次你在進(jìn)行修改的時(shí)候,都創(chuàng)建一個(gè)副本,結(jié)果就是一份報(bào)告分散出好多的文件,可是如果過了一周,看著這些亂起八糟的文件,你想找到修改的內(nèi)容,但是已經(jīng)記不清保存在哪個(gè)文件中了,只好一個(gè)一個(gè)文件去找,非常麻煩。并且如果你想保留最新的文件,然后把其他文件刪掉,但是你又不敢刪,怕哪天還會(huì)用到,真郁悶。

針對(duì)以上問題,難道就沒有一種完美的解決方案的嗎?于是 Git 等版本控制系統(tǒng)橫空出世。其中 Git 版本回退可以說是 Git 的殺手锏之一,注意是之一,后面還有之二、之三……這個(gè)我們之后在介紹。

二、前置知識(shí)

為了更好的理解 Git ,在講 Git 之前,我們先引入一些前置知識(shí):

git add 將文件提交到暫存區(qū)。git commit 將文件提交到本地倉(cāng)庫(kù)。git status 可以讓我們隨時(shí)掌握工作區(qū)的狀態(tài)(哪些文件被修改過)。git diff 顧名思義就是查看difference,可以查看修改內(nèi)容,顯示的格式是Unix通用的diff格式。git log 命令顯示從最近到最遠(yuǎn)的提交日志(加上--pretty=oneline會(huì)更加可觀)。

上面這些命令不作為本期重點(diǎn),大家可以自行了解。

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

工作區(qū):就是你在電腦里能看到的目錄。暫存區(qū):英文叫 stage 或 index。一般存放在 “.git” 目錄下的 index 文件(.git/index)中,所以我們把暫存區(qū)有時(shí)也叫作索引(index)。版本庫(kù):工作區(qū)有一個(gè)隱藏目錄.git,這個(gè)不算工作區(qū),而是Git的版本庫(kù)。

下面這張圖就展示了 其實(shí)細(xì)心的小伙伴就發(fā)現(xiàn)了,除了工作區(qū),暫存區(qū),版本庫(kù),還有兩個(gè)就是 object 和 master

在Git中,所有的數(shù)據(jù)都以對(duì)象(objects)的形式存儲(chǔ)(文件內(nèi)容,提交信息,分支引用等等)。objects 標(biāo)識(shí)的區(qū)域?yàn)?Git 的對(duì)象庫(kù),實(shí)際位于 “.git/objects” 目錄下,里面包含了創(chuàng)建的各種對(duì)象及內(nèi)容。當(dāng)執(zhí)行提交操作(git commit)時(shí),暫存區(qū)的目錄樹寫到版本庫(kù)(對(duì)象庫(kù))中,master 分支會(huì)做相應(yīng)的更新。即 master 指向的目錄樹就是提交時(shí)暫存區(qū)的目錄樹。

注:Git 跟蹤并管理的是修改(新增、刪除、更改、新建)

四、版本回退

1、版本回退命令

git reset 命令在 Git 中被用來移動(dòng) HEAD 指針和重置當(dāng)前分支的位置。它有幾種不同的用法,主要包括以下三種模式:soft、mixed 和 hard。

1. Soft 模式:git reset --soft :該命令將 HEAD 指向 ,但不會(huì)更改暫存區(qū)和工作目錄的內(nèi)容。你可以重新提交更改,新的提交將建立在指定的 之上。

2. Mixed 模式:git reset --mixed (默認(rèn)行為):該命令將 HEAD 指向 ,并重置暫存區(qū)的內(nèi)容為指定 的內(nèi)容,但不會(huì)更改工作目錄的內(nèi)容。這樣你可以重新選擇要提交的內(nèi)容。

3. Hard 模式:git reset --hard :該命令將 HEAD 指向 ,同時(shí)重置暫存區(qū)和工作目錄的內(nèi)容為指定 的內(nèi)容。慎用此命令,因?yàn)闀?huì)丟失工作目錄中未提交的更改。

除了以上幾種模式外,git reset 還可以結(jié)合使用一些選項(xiàng)和參數(shù)來實(shí)現(xiàn)不同的操作,如:

(1)git reset HEAD :將指定文件從暫存區(qū)中移除,但保留在工作目錄中的更改。 (2)git reset --hard HEAD:將工作目錄和暫存區(qū)都重置為最近一次提交的狀態(tài),丟棄所有未提交的更改。 (3)git checkout -- [file]: 命令讓?作區(qū)的文件回到最近?次 add 或 commit 時(shí)的狀態(tài)。要注意 git checkout – [file] 命令中的-- 很重要,切記不要省略,?旦省略,就變成了“切換到另一個(gè)分支”的命令。

注:

HEAD 表示當(dāng)前版本HEAD^ 上?個(gè)版本HEAD^^ 上上?個(gè)版本 以此類推…

也可以使? ?數(shù)字表示:

HEAD~0 表示當(dāng)前版本HEAD~1 上?個(gè)版本HEAD^2 上上?個(gè)版本 以此類推…

2、四大常見場(chǎng)景

(1)場(chǎng)景一:使用 --hard 將工作區(qū)、暫存區(qū)、版本庫(kù)進(jìn)行了回退,結(jié)果后悔了怎么辦

在Git中,總是有后悔藥可以吃的。例如當(dāng)你用 git reset --hard HEAD^ 回退到上一個(gè)版本時(shí),再想恢復(fù)到之前的版本,就必須找到之前版本的 commit id。Git提供了一個(gè)命令 git reflog 用來記錄你的每一次命令,你可以通過這個(gè)命令找到之前的版本 id,然后使用 git reset --hard 進(jìn)行恢復(fù)。

(2)場(chǎng)景二:對(duì)于?作區(qū)的代碼,還沒有 add

直接使用 git checkout -- 即可回退到最近一次工作區(qū)修改。

(3)場(chǎng)景三:已經(jīng) add ,但沒有 commit

先使用 git reset --mixed HEAD 回到場(chǎng)景二。

再使用 git checkout -- 回退到最近一次工作區(qū)修改。

(4)場(chǎng)景四:已經(jīng) add ,并且也 commit 了

不要擔(dān)心,我們可以 git reset --hard HEAD^ 回退到上?個(gè)版本!不過,這是有條件的,就是你還沒有把??的本地版本庫(kù)推送到遠(yuǎn)程。還記得Git是分布式版本控制系統(tǒng)嗎?我們后?會(huì)講到遠(yuǎn)程版本庫(kù),?旦你推送到遠(yuǎn)程版本庫(kù),你就真的慘了……

3、刪除文件

再 Git 中刪除也是修改,也可以被 Git 管理起來。

一般情況下,你直接在工作區(qū)中把文件給刪除了,這個(gè)時(shí)候 Git 是可以知道你刪除了文件的,你可以使用 git status 命令查看哪些文件被刪除了。

其實(shí)在實(shí)際的工作中,刪除文件的操作是比較少見的,此時(shí)一般會(huì)存在兩種情況:

情況一:確實(shí)想要從版本庫(kù)中刪除文件

使用 git rm 刪除掉使用 git commit 提交刪除

情況二:不小心刪錯(cuò)了,屬于誤刪情況

git checkout – 恢復(fù)即可

總結(jié)

值得注意的是,Git 的版本回退速度非??欤?yàn)?Git 在內(nèi)部有個(gè)指向當(dāng)前版本的 HEAD 指針,當(dāng)你回退版本的時(shí)候,Git 僅僅是把 HEAD 指針指向回退的版本即可。

柚子快報(bào)邀請(qǐng)碼778899分享:Git 時(shí)光穿梭

http://yzkb.51969.com/

精彩內(nèi)容

評(píng)論可見,查看隱藏內(nèi)容
大家都在看:

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18852457.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄