<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 工作區和暫存區 Git和其他版本控制系統如SVN的一個不同之處就是有暫存區的概念。 先來看名詞解釋。 ### 工作區(Working Directory) 就是你在電腦里能看到的目錄,比如我的`learngit`文件夾就是一個工作區: ![working-dir](img/0013849082162373cc083b22a2049c4a47408722a61a770000.png) ### 版本庫(Repository) 工作區有一個隱藏目錄`.git`,這個不算工作區,而是Git的版本庫。 Git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有Git為我們自動創建的第一個分支`master`,以及指向`master`的一個指針叫`HEAD`。 ![git-repo](img/001384907702917346729e9afbf4127b6dfbae9207af016000.png) 分支和`HEAD`的概念我們以后再講。 前面講了我們把文件往Git版本庫里添加的時候,是分兩步執行的: 第一步是用`git add`把文件添加進去,實際上就是把文件修改添加到暫存區; 第二步是用`git commit`提交更改,實際上就是把暫存區的所有內容提交到當前分支。 因為我們創建Git版本庫時,Git自動為我們創建了唯一一個`master`分支,所以,現在,`git commit`就是往`master`分支上提交更改。 你可以簡單理解為,需要提交的文件修改通通放到暫存區,然后,一次性提交暫存區的所有修改。 俗話說,實踐出真知。現在,我們再練習一遍,先對`readme.txt`做個修改,比如加上一行內容: ``` Git is a distributed version control system. Git is free software distributed under the GPL. Git has a mutable index called stage. ``` 然后,在工作區新增一個`LICENSE`文本文件(內容隨便寫)。 先用`git status`查看一下狀態: ``` $ git status # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: readme.txt # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # LICENSE no changes added to commit (use "git add" and/or "git commit -a") ``` Git非常清楚地告訴我們,`readme.txt`被修改了,而`LICENSE`還從來沒有被添加過,所以它的狀態是`Untracked`。 現在,使用兩次命令`git add`,把`readme.txt`和`LICENSE`都添加后,用`git status`再查看一下: ``` $ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: LICENSE # modified: readme.txt # ``` 現在,暫存區的狀態就變成這樣了: ![git-stage](img/001384907720458e56751df1c474485b697575073c40ae9000.png) 所以,`git add`命令實際上就是把要提交的所有修改放到暫存區(Stage),然后,執行`git commit`就可以一次性把暫存區的所有修改提交到分支。 ``` $ git commit -m "understand how stage works" [master 27c9860] understand how stage works 2 files changed, 675 insertions(+) create mode 100644 LICENSE ``` 一旦提交后,如果你又沒有對工作區做任何修改,那么工作區就是“干凈”的: ``` $ git status # On branch master nothing to commit (working directory clean) ``` 現在版本庫變成了這樣,暫存區就沒有任何內容了: ![git-stage-after-commit](img/0013849077337835a877df2d26742b88dd7f56a6ace3ecf000.png) ## 小結 暫存區是Git非常重要的概念,弄明白了暫存區,就弄明白了Git的很多操作到底干了什么。 沒弄明白暫存區是怎么回事的童鞋,請向上滾動頁面,再看一次。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看