Git版本工具系列之三 Git暫存區的意義

2021-10-04 04:59:51 字數 1114 閱讀 4041

初學者尤其是沒有工作的學生初識git思維會有些侷限,不了解git真實應用場景和它應該要解決的核心問題,容易站在自己的角度和自己的思維模式下去考慮一些功能設計的意義,當然會有些費解;你需要知道版控工具它的意義,如為了更好地協同工作,更好地儲存工作進度,明白乙個功能它要解決的核心問題是什麼;

從應用場景來理解:你現在正在開發乙個功能模組,測試那裡突然報了乙個其它模組緊急的bug,你當前的模組還沒做完肯定不能提交(當然你也可以提交,但是版控的意義就大打折扣了,我們需要每一次提交是完整的,而不是殘次的;最重要的是,我們應該有更好的方式來處理),那麼當你修復另乙個模組的bug時,你怎麼去將其提交呢?

你可能會想:我直接提交修改的某一部分不就完事了?,是的,git也是這麼想的;但是要明確一點:git中的commit操作它是乙個原子性操作(想一想你可以在git commit時去選擇提交哪些嗎?),也就是它會把暫存區的檔案全部提交,而且要麼全部成功,要麼全部失敗;

那麼你什麼時候去選擇要提交哪些檔案呢?commit操作是將暫存區的內容全部提交,所以我們要回到暫存區中思考;從工作區到暫存區,使用git add 檔名,我們可以選擇性地向暫存區新增內容,然後將其分批提交,暫存區的意義是它將你準備提交的內容分批整體處理;

另一部分人的困惑:老大哥svn?如果是從svn轉到git時,可能會稍微有點不了解暫存區,那是因為svn add和commit操作和git add和commit操作其實是有一些差別的;svn add只是將為進行版控的檔案加入到版控,svn commit操作則是提交現有修改,不過它在commit時可以去選擇提交哪些修改;而git是將選擇操作單獨封裝成git add命令;

tortoisegit?不要被tortoisegit誤解了,在使用tortoisegit的時候,你會發現它的add命令和svn add命令是一樣的,都只是將未版控的檔案加入到版控,然後在commit時選擇提交;tortoisegit和tortoisesvn的命令功能很相似,但是必須要明確的是git命令本身並不是這樣的,但是其最終共同的目標就是要能夠選擇性提交,將不同的功能模組分開提交;

知乎-為什麼要先 git add 才能 git commit ?

社群問答-git暫存區的意義在於什麼

Git系列 三 Git版本管理

git系列目錄git系列 一 git安裝後配置使用者名稱 郵箱 git系列 二 git建立本地倉庫及對檔案進行操作 git系列 三 git版本管理 git系列 四 本地倉庫關聯遠端倉庫 將本地倉庫推送到github git系列 五 git flow git系列 六 git貯藏 如果說在工作中需要回退...

Git版本工具

git 的基本設定 首先給自己的ubuntu系統上安裝vim編輯器和git版本工具 sudo apt get install git vim下面是git的基本設定 git config global user.name ming xu git config global user.email 920...

git版本控制工具

安裝while true 下一步 安裝完成後,開啟git bash git config global user.name xx git config global user.email xx cd到專案根目錄 git init git add 首次新增全部內容 git commit m first...