久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      git中暫存區(qū)和本地庫的區(qū)別是什么

      git中暫存區(qū)和本地庫的區(qū)別:暫存區(qū)又稱索引區(qū),是工作區(qū)與本地倉庫之間的一個過渡區(qū)域,它記錄了工作區(qū)的代碼狀態(tài)(有無改動,或者做了哪些改動);而本地倉庫則記錄了本地代碼的狀態(tài)。

      git中暫存區(qū)和本地庫的區(qū)別是什么

      本教程操作環(huán)境:Windows7系統(tǒng)、Git2.30.0版、Dell G3電腦。

      1、git倉庫相關(guān)概念的理解

      要想深入理解git命令,必須理解git倉庫相關(guān)的幾個概念。先看一下一份本地代碼目錄D:gittest目錄下:

      git中暫存區(qū)和本地庫的區(qū)別是什么
      需要注意的是.git是隱藏目錄,需要顯示隱藏文件才能看到。

      工作區(qū)(working directory):簡單來說保存在本地的文件或目錄都屬于工作區(qū),平常修改代碼都是在工作區(qū)進行的。一般本地的文件,除了隱藏的.git目錄,其它都屬于工作區(qū)。上圖中看到的mydir、file1.txt、file2.txt都是屬于工作區(qū)。

      暫存區(qū)(Stage):又稱索引區(qū)(index),顧名思義,它是工作區(qū)與本地倉庫之間的一個過渡,它記錄了工作區(qū)的代碼狀態(tài)(有無改動,或者作了哪些改動)。位于.git目錄中。

      本地倉庫(repository):記錄了本地代碼的狀態(tài),位于.git目錄中。

      關(guān)于狀態(tài)的理解:

      想一下,我們平時在修改一份重要的文件時,肯定要先做一份備份,目的是防止修改出錯,最終還能恢復(fù)。假如這份文件本身很大,如果如果備份就會占用額外較多的空間,這樣就顯得不太劃算。還有另外一種方式,就是記錄文件的修改狀態(tài),而不是對文件本身進行備份。文件狀態(tài)類似如下描述:

      文件第一行:將xxx換成了****

      文件第三行和第四行之間,增加了一行,內(nèi)容是……

      說白了文件狀態(tài)就是文件的修改記錄,根據(jù)修改記錄我們就可以知道我們對文件作了哪些修改,根據(jù)修改記錄也可以恢復(fù)到文件修改之前的狀態(tài)。

      2、git命令講解

      幾個與查看狀態(tài)相關(guān)的命令:

      git status 查看文件在工作區(qū)、暫存區(qū)、本地倉庫之間的變化

      git diff 查看工作區(qū)與暫存區(qū)的差異

      git diff –cached 查看暫存區(qū)與本地倉庫的區(qū)別

      git diff HEAD 查看工作區(qū)與本地倉庫之間的差異

      一些命令對應(yīng)的操作如下:
      git中暫存區(qū)和本地庫的區(qū)別是什么

      下面以一個具體的例子來說明本地文件修改會導(dǎo)致相關(guān)區(qū)域的變化

      修改之前,工作區(qū)、暫存區(qū)與本地倉庫之間狀態(tài)是一致的

      (1)本地修改文件file1.txt 里面增加一行add this line

      git status 查看文件在工作區(qū)、暫存區(qū)、本地倉庫倉庫之間的變化

      git中暫存區(qū)和本地庫的區(qū)別是什么

      上圖中可以看到,Changes not staged for commit:,說明文件在工作區(qū)已經(jīng)發(fā)生了變化,但是修改還未提交到暫存區(qū)

      git diff 查看工作區(qū)與暫存區(qū)的變化

      git中暫存區(qū)和本地庫的區(qū)別是什么

      從圖中可以看出,工作區(qū)與暫存區(qū)之間發(fā)生了變化,這是由于本地文件修改了,并且還未將修改提交到暫存區(qū)

      git diff HEAD 查看工作區(qū)與本地倉庫之間的狀態(tài)

      git中暫存區(qū)和本地庫的區(qū)別是什么

      從上圖可以看出,工作區(qū)與本地倉庫之間也出現(xiàn)了差異。很簡單,此時本地倉庫與暫存區(qū)的狀態(tài)是一致的

      git diff –cached 查看暫存區(qū)與本地倉庫,會發(fā)現(xiàn)它們之間缺失沒有差異

      (2)將本地修改提交到暫存區(qū)

      git add . 將本地的修改提交的暫存區(qū)

      git status

      git中暫存區(qū)和本地庫的區(qū)別是什么
      可以看到,修改已經(jīng)提交到了暫存區(qū):Changes to be committed:

      提交之后,用git diff 查看,會發(fā)現(xiàn)工作區(qū)與暫存區(qū)已經(jīng)沒有了差異。

      但是暫存區(qū)與工作區(qū)有了差異。

      git diff –cached

      git中暫存區(qū)和本地庫的區(qū)別是什么

      同樣,用git diff HEAD會發(fā)現(xiàn)工作區(qū)與本地倉庫還是有差異

      (3)將修改提交到本地倉庫

      git commit -m “add a line in file1.txt” 將修改從暫存區(qū)提交到本地倉庫

      git status查看,提示Your branch is ahead of ‘origin/master’ by 1 commit.表明工作區(qū)的修改已經(jīng)提交的本地倉庫,但是還沒有推送到遠程分支。

      git中暫存區(qū)和本地庫的區(qū)別是什么

      git diff、git diff –cached 、git diff HEAD 會發(fā)現(xiàn)提示沒有差異。因為工作區(qū)的修改已經(jīng)提交到本地倉庫,此時工作區(qū)、暫存區(qū)、本地倉庫的狀態(tài)是一致的。

      逆操作

      git add – git checkout 將工作區(qū)文件退回到暫存區(qū)狀態(tài),將工作區(qū)文件替換為暫存區(qū)文件。

      比如工作區(qū)修改了文件file1.txt,此時還未提交到暫存區(qū)。如果想放棄修改,就可以用

      git checkout file1.txt將文件退回到暫存區(qū)狀態(tài)(放棄修改)

      git commit – git reset HEAD 拉取最近一次提交到本地倉庫的文件到暫存區(qū),不影響工作區(qū)。

      總結(jié):

      如果我們想放棄本地文件(工作區(qū))的某一次修改:

      • 如果修改還未提交到暫存區(qū),就可以使用git checkcout恢復(fù)
      • 如果修改已經(jīng)提交到暫存區(qū),還沒提交到本地倉庫,就先使用git reset HEAD 將暫存區(qū)狀態(tài)恢復(fù),然后使用git checkout 恢復(fù)工作區(qū)

      推薦學(xué)習(xí):《Git教程》

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號