<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                >[success] # 獲取GIT 倉庫 * `Workspace`工作區:工作區編寫代碼地方 * `Index / Stage`暫存區:暫存區臨時存放每一個次修改的代碼,此時并沒有生成歷史版本,**暫存區**可以理解為一個**虛擬工作區**,這個虛擬工作區會跟蹤工作區的文件變化(增刪改等操作)。這個工作區的位于`.git`文件夾下的`index`目錄下。除非是繞過暫存區直接提交,否則Git想把修改提交上去,就必須將修改存入暫存區最后才能`commit`。每次提交的是暫存區所對應的**文件快照** `git add` 添加的不是文件名,而是**文件的改動內容(集中收集改動以待提交)**,是具體的對改動內容的一個快照,這里使用 `sourceTree `工具更形象的看一下,看到 `b` 文件從來沒有被在暫存區標記,`a` 已經在暫存區標記過了,更新對比不是整個文件只是改動內容 * 通過sourceTree 工具來看 ![](https://img.kancloud.cn/a5/89/a589ed0b9370c43a88e19305fc204263_583x435.png) * 命令行看 ![](https://img.kancloud.cn/83/12/8312e16cf5f8d8aea4f7e8fc362b23e8_633x218.png) * **Repository:倉庫區(或本地倉庫)**、 * **Remote:遠程倉庫** **工作原理 / 流程圖** ![](https://img.kancloud.cn/42/57/42576ced8f02bbd0418ad88cd59718d6_881x283.png) 1. `git init` 初始化一個本地`git`倉庫,執行命令后會創建一個名為` .git` 的子目錄 2. `git clone 遠程地址`,拷貝一個 Git 倉庫到本地,讓自己能夠查看該項目,或者進行修改,會創建一個`.git` 的子目錄 * **關于`.git`文件夾**包含項目在版本控制中所需的所有信息以及有關提交,遠程存儲庫地址等的所有信息.所有這些信息都存在于此文件夾中.它還包含一個存儲您的提交歷史記錄的日志,以便您可以回滾到歷史記錄. ![](https://img.kancloud.cn/c1/1a/c11af436f1cdb74a3fb2d4c87fbbf543_360x46.png) 3. 你需要將**某些文件交由這個Git倉庫**來管理,之后會在**修改文件的內容**,當達成某一個目標時,想要記錄下來這次操作,就會將它**提交到倉庫中**,記住這個順序 * 告訴git 那些文件需要被記錄, * 被記錄的文件觸發改變的時候進行提交 4. 根據上面的步驟整個代碼就可以劃分為兩種狀態 * **未跟蹤**:默認情況下,Git倉庫下的文件也沒有添加到Git倉庫管理中,我們需要通過add命令來操作 * **已跟蹤**:添加到Git倉庫管理的文件處于已跟蹤狀態,Git可以對其進行各種跟蹤管理 >[success] # 倉庫流程 1. 需要先將文件狀態為**untracked files (未追蹤的文件)** 或者**modified(modified 一些改動)** 從工作區提交到暫存區 執行`git add 文件` 2. `git commit –m "提交信息"`將暫存區域的文件提交到**本地倉庫** 3. 使用 `git push` 來把你的本地提交發布(即上傳到中央倉庫) * git 倉庫 ![](https://img.kancloud.cn/1e/5a/1e5a3b2ba8926ed14f71fc909925df5b_1410x643.png) ![](https://img.kancloud.cn/35/74/3574652220d195b67b2f475d6d158b97_772x362.png) >[info] ## 完整提交的各個環節(git status 查看狀態) 1. 創建了一個 `test` 文件夾,并將里面創建了 `a.js` 文件,此時創建的文件都是未跟蹤狀態因為新文件 * 命令行。下面命令行的含義 你在 `master branch` 當前 `branch `沒有落后于 `origin/master` 你有 `untracked files (未追蹤的文件)`,文件名是 test/。 你可以使用 `git add` 來開始追蹤文件。 ![](https://img.kancloud.cn/07/aa/07aaaa39b1a2ebf926401e23c79c4d11_568x164.png) * sourceTree ![](https://img.kancloud.cn/39/da/39da62e740b4bf6ea85c93485275483b_481x454.png) 2. 使用 `git add test` 將test 文件暫存并加入狀態追蹤 * 命令行 `test/a.js`文字變成了綠色,它的前面多了「new file:」的標記,描述也從 "**Untracked files**" 變成了 "**Changes to be commited**",文件的狀態從 "**untracked**"(未跟蹤)變成了 "**staged**"(已暫存),**這個文件中被改動的部分被記錄進了 staging area(暫存區)** ![](https://img.kancloud.cn/1a/d4/1ad4c6e77545d4dda34ad8f89afe9237_412x137.png) * sourceTree ![](https://img.kancloud.cn/bd/19/bd19e5f5a5febee8586e31ce3844486c_486x429.png) 3. 使用 `git commit -m '提交信息' `(如果不使用-m,那么會進入vim編譯器操作提交內容備注)將暫存區文件提交到本地倉庫 * 命令行 此時文件已經提交到了本地`git`倉庫,并且提示有個提交遠程沒有 ![](https://img.kancloud.cn/84/f4/84f4e43f973199beca0f4c86f4be64dd_412x105.png) * sourceTree ![](https://img.kancloud.cn/8f/a6/8fa62ee6f9b7790d9d18dc6e0e8ac4e5_623x31.png) 4. 使用 `git push` 推送到遠程 * 命令行 推送遠程后 顯示沒有文件 ![](https://img.kancloud.cn/d0/52/d05227a3793c95312b044689b8f8372d_414x98.png) * sourceTree ![](https://img.kancloud.cn/dd/db/dddb4ca972b3858f8b7981b20797f6d4_558x27.png) >[danger] ##### 對已有記錄文件狀態提交 1. 對已經追蹤的文件進行內容修改后查看當前文件狀體 * **命令行** `test/a.js`變紅了,不過這次它左邊的文字不是 "New file:" 而是 "modified:",而且上方顯示它的狀態也不是 "Untracked" 而是 "not staged for commit",意思很明確:Git 已經認識這個文件了,它不是個新文件,但它有了一些改動 ![](https://img.kancloud.cn/4e/0b/4e0ba48f96aca2ab0d7da0b27e4758f9_517x177.png) * **sourceTree** ![](https://img.kancloud.cn/ad/21/ad21cb797d576cefa07a0b90fa75f8df_922x427.png) 2. 剩下步驟都一樣進行 `git add` `git commit` >[danger] ##### git add 說明 假如你修改了文件`a.txt`,然后把它`add`進了暫存區: ~~~csharp git add a.txt git status ~~~ ![](https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2017/11/22/15fe36e3ee50d1a6~tplv-t2oaga2asx-zoom-in-crop-mark:3024:0:0:0.awebp) 然后你又往`a.txt`里寫了幾行東西。這時候你再`status`一下的話: ~~~lua git status ~~~ ![](https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2017/11/22/15fe36e3ed9f9877~tplv-t2oaga2asx-zoom-in-crop-mark:3024:0:0:0.awebp) 你會發現你的`a.txt`既在 "Changes to be commited" 的暫存區,又在 "Changes not staged for commit"。不用覺得奇怪,這是因為通過`add`添加進暫存區的不是文件名,而是具體的文件改動內容。你在`add`時的改動都被添加進了暫存區,但在`add`之后的新改動并不會自動被添加進暫存區。在這時如果你提交: ~~~sql git commit ~~~ 那么你那些新的改動是不會被提交的 >[danger] ##### 總結 **'工作區' =》'暫存區' =》 '歷史區' =》'遠程倉庫'**,新創建的文件都還未被`git` 追蹤需要使用`git add` 放入暫存區形成追蹤然后依次提交本地倉庫在本地倉庫,如果是已經追蹤的文件當修改的時候,會追蹤到修改的部分,需要將修改的部分使用`git add` 放入暫存區,在依次提交本地倉庫在本地倉庫 1. 整體操作把寫完的代碼提交(先用`git add 文件名`把文件添加到暫存區,再用`git commit`提交) * 在這個過程中,可以使用`git status`來隨時查看工作目錄的狀態 * 每個文件有 "changed / unstaged"(已修改), "staged"(已修改并暫存), "commited"(已提交) 三種狀態,以及一種特殊狀態 "untracked"(未跟蹤) 2. 提交一次或多次之后,把本地提交`push`到中央倉庫(`git push`) ![](https://img.kancloud.cn/90/d0/90d030c6a2951ad10d05370eef8efa06_1185x519.png) >[info] ## 文章參考 [Git 原理詳解及實用指南](https://juejin.cn/book/6844733697996881928)
                  <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>

                              哎呀哎呀视频在线观看