GIT第四講文件修改和還原

當(dāng)我們弄清楚GIT的幾種文件狀態(tài)之后,這一部分的內(nèi)容就變得簡(jiǎn)單了,我們通過(guò)一個(gè)具體的例子來(lái)了解一下GIT的修改和修改還原。首先創(chuàng)建一個(gè)新的文件夾并且通過(guò)git init將其設(shè)置為git的工廠,添加一個(gè)a.txt的文件,使用git add .將其設(shè)置為Staged狀態(tài)之后通過(guò)git commit -m "first"將其添加到git的版本庫(kù)中。這些操作相信大家已經(jīng)能夠熟練的掌握了。

下一步我們修改一下a.txt文件,執(zhí)行git add .再次將其提交到Staged狀態(tài),此時(shí)我們先不進(jìn)行commit,我們向a.txt中寫入一些內(nèi)容,使用git status看看情況

git的文件的修改和還原
git的文件的修改和還原

我們發(fā)現(xiàn)a.txt處于兩種狀態(tài)StagedModified,這是因?yàn)槲覀兊谝淮涡薷倪M(jìn)行了add之后它變成了Staged狀態(tài),Index對(duì)這次操作進(jìn)行了記錄,但此時(shí)再次修改了之后,Index發(fā)現(xiàn)a.txt的內(nèi)容和版本庫(kù)中不一致,所以也將它的狀態(tài)改為了Modified狀態(tài),此時(shí)進(jìn)行commit操作。

git的文件的修改和還原
git的文件的修改和還原

我們發(fā)現(xiàn),該文件僅僅只是提交了Staged狀態(tài)的修改,而Modified狀態(tài)的文件并沒(méi)有進(jìn)行提交,這再次證明了上一節(jié)課的內(nèi)容,只有Staged狀態(tài)才能commit到版本庫(kù)中,如果是Modified狀態(tài),需要先通過(guò)add將其設(shè)置為Staged狀態(tài)(也就是第一講中所說(shuō)的暫存區(qū))。此時(shí)如果我發(fā)現(xiàn)我這次的修改沒(méi)有意義,希望a.txt能夠和版本庫(kù)中的內(nèi)容一致,只要使用以下命令即可

git checkout a.txt

查詢一下a.txt,我們會(huì)發(fā)現(xiàn)該文件的內(nèi)容已經(jīng)和版本庫(kù)中一樣了。

git的文件的修改和還原
git的文件的修改和還原

所以通過(guò)checkout可以很方便的讓自己的文件同步版本庫(kù)中的內(nèi)容,注意使用checkout只能同步modified狀態(tài)下的內(nèi)容,此時(shí)我們?cè)俅螌?duì)a.txt進(jìn)行修改,并且通過(guò)add進(jìn)行操作之后,a.txt的文件狀態(tài)就從Modified變成了Staged狀態(tài),我們?cè)賮?lái)使用checkout看看效果。

git的文件的修改和還原
git的文件的修改和還原

此時(shí)我們發(fā)現(xiàn)checkout并不能還原原來(lái)的文件內(nèi)容了(我們將會(huì)在下一講講解git的三種常用組件,到時(shí)候就知道為什么無(wú)法還原了)。所以我們得到一個(gè)結(jié)論checkout命令并不能還原Staged狀態(tài)的內(nèi)容,此時(shí)可以通過(guò)

git reset HEAD a.txt

把該文件從Staged狀態(tài)設(shè)置為Modified狀態(tài),也就是將這個(gè)文件從暫存區(qū)中清除。

git的文件的修改和還原
git的文件的修改和還原

之后通過(guò)git checkout a.txt就可以把內(nèi)容還原了。

這節(jié)課的內(nèi)容就到這里了,只要掌握了git的幾種狀態(tài)之后,這個(gè)內(nèi)容非常好理解。下一講將會(huì)講解git最核心的知識(shí),就是git最常用的三個(gè)組件BLOB、Tree、Commit

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • GIT分布式版本控制系統(tǒng)最佳實(shí)踐 這篇文章來(lái)自于老男孩教育高級(jí)架構(gòu)師班12期的徐亮偉同學(xué)。 首先感謝老男孩架構(gòu)師班...
    meng_philip123閱讀 3,809評(píng)論 4 36
  • 三個(gè)月轉(zhuǎn)眼就過(guò)去,第二期培訓(xùn)如期而至。本次培訓(xùn)由劉慕雅老師給我們講解關(guān)于演講的很多知識(shí),受益匪淺,也讓我漸漸地愿意...
    LoveAriel閱讀 195評(píng)論 0 0
  • 青春文稿閱讀 1,142評(píng)論 0 3
  • 這算是是一個(gè)真實(shí)的故事吧。 她和他第一次相遇,是初一的時(shí)候。那時(shí)候她對(duì)他沒(méi)有什么其他情愫,只是覺(jué)得他長(zhǎng)得好可愛(ài)呀!...
    重樓舊夢(mèng)閱讀 337評(píng)論 0 4

友情鏈接更多精彩內(nèi)容