使用git管理源码之文件状态和工作区理解
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
這次主要是介紹一下,在git管理中,不同文件在不同狀態(tài)所處于不同位置的原理。
首先先盜圖一張(ps:圖片來源于http://git.oschina.net/progit/,本系列博客致力于讀者快速理解git中的部分知識(shí),也同時(shí)鞏固自身知識(shí),所以會(huì)適當(dāng)?shù)囊貌糠謥碓从趐rogit這本書的相關(guān)資料,僅供學(xué)習(xí)交流,以后再作使用,不做相同申明)。
從圖中我們可以清晰的看到,文件具有以下幾種狀態(tài)。
untracked(未跟蹤狀態(tài))
unmodified(未修改狀態(tài))
modified(已修改狀態(tài))
staged(已暫存狀態(tài))
首先要理解一下工作區(qū)和本地倉庫的概念。工作區(qū)是你對(duì)文件進(jìn)行操作的空間,該目錄也稱之為工作目錄。本地倉庫為你commit你本地代碼之后git工具保存你歷史版本代碼的倉庫。
那么應(yīng)該如何理解這幾種狀態(tài)在哪些場(chǎng)景中會(huì)出現(xiàn)呢?下面我使用相應(yīng)的命令來具體的講解一下。
1. 當(dāng)你新增加了一個(gè)文件或者刪除了某個(gè)文件,這里的新增加是指,在你以往的倉庫歷史中你從來沒有存在過。這時(shí)候文件的狀態(tài)就是untracked狀態(tài)
通過git add <file>命令將未跟蹤的進(jìn)行跟蹤,通過該命令該文件的狀態(tài)會(huì)變成已暫存狀態(tài)(ps:上圖中顯示的是會(huì)變成未修改狀態(tài),經(jīng)過實(shí)際操作實(shí)際上是直接變?yōu)橐褧捍鏍顟B(tài),其實(shí)自身理解上來也是如此)。
2. 當(dāng)你新建一個(gè)分支時(shí)并且切換到新分支時(shí),以及commit你當(dāng)前工作區(qū)中的代碼到本地倉庫時(shí),現(xiàn)在的文件狀態(tài)稱之為unmodified狀態(tài)
如以下命令會(huì)使文件出入unmodified狀態(tài)
git?checkout?-b?test?該命令等于先執(zhí)行?git?branch?test?再執(zhí)行g(shù)it?checkout?testgit?commit3. 當(dāng)你對(duì)某個(gè)文件做出了修改,該文件就會(huì)處于modified狀態(tài),該狀態(tài)比較好理解。
4. 如之前提到的,對(duì)未跟蹤文件進(jìn)行跟蹤會(huì)使文件出入暫存狀態(tài),同樣對(duì)已修改文件進(jìn)行
git?add?<file>命令同樣會(huì)使文件處于已暫存狀態(tài)。當(dāng)你的工作區(qū)中出現(xiàn)了多個(gè)未跟蹤狀態(tài)的文件以及多個(gè)已修改狀態(tài)的文件時(shí),假如你確定所有文件是你正確狀態(tài)下做出的添加和修改。你可以通過以下命令將所有文件一次性的修改為已暫存狀態(tài)
git?add?-A轉(zhuǎn)載于:https://my.oschina.net/u/2004332/blog/415209
總結(jié)
以上是生活随笔為你收集整理的使用git管理源码之文件状态和工作区理解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Lexus Extroic OpenCa
- 下一篇: Spark集群模式概述