<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之旅 廣告
                ## **概念及必要性** 在項目開發中,一個好的習慣就是常于備份,而Git就是來幫助我們備份代碼的。 也許你遇到這樣的情況:你做出了一個軟件并上線給到用戶在用,用戶在用的過程中,哪些功能體驗不好,你要去改善,這時候你要在原有的代碼【代碼文件v1】中做修改但改之前,得做下備份,這時候你就有了備份【代碼文件A-v1-backups】的備份文件,當你將用戶提給你的這些方面改善好了,這時候你就有了修改后的新文件【代碼文件A-v2】,當又有用戶覺得其他方面體驗不好,你還得改,又多了文件【代碼文件A-v3】,依次一直文件v4,v5,v6…直到無限。 這時候問題來了,假如當某一次改動上線后出現嚴重bug,在時間不允許時,你就得拿出最近一次備份的文件先頂一頂(俗稱版本回滾),這個其實還好辦。但假如不是最近一次,而是很久之前的,你這時候就需要去文件v1,v2,v3,v4…一個個去找,而此時面對著一堆的文件,你完全想不起來,當初備份的這個是什么, 此時我們就需要用到本章節的內容:版本管理器 目前市面上優秀的版本管理器有兩個: 1. 集中式的SVN 2. 分布式的Git SVN既然是集中式的,有一個統一的文件服務器存放這些文件,每個人單獨與之做溝通,但集中式的注定了當作為核心的SVN服務器掛掉之后,所有人都無法在使用。而Git的分布式設計讓每個人都有一個完全屬于自己的獨立倉庫,盡管它也有一個中間的交互服務器,但那僅僅只是作為一個中間媒介,當中間節點掛了,你本機有一個完整的代碼庫,不會對你有過大的影響。 因此,本文檔將采用Git作為協同開發中的版本管理器來將講解如何使用Git ## **1.Git 安裝** 參見: 3.2 Git客戶端安裝過程 ## **2. Git使用** 裝好Git,我們可以使用純命令行操作Git,新手建議裝個小烏龜TortoiseGit,安裝完畢后: ![](https://pic2.zhimg.com/80/v2-624b25056314bf1afcffb0c526405a05_hd.png) 裝好Git之后,先來看看Git此類的版本管理工具到底怎么幫我們備份文件的。 備份文件按照常理來說,需要做以下事情: 1、誰備份的? 2、什么時候備份的? 這些不用我們開口Git就幫我們做了。接下來: 3、需要備份哪些文件? 4、備份的這些文件是干嘛用的? 與單人備份有些不同的是,這是多人備份。你有可能你要備份的文件,在你備份之前被別人改過,而你手里的文件暫時沒有別人改過的那部分代碼,甚至那部分代碼你也改了,這樣跟假如JavaScript是多線程,操作DOM時,瀏覽器要聽誰一樣。這時候,Git要聽誰的呢?所以需要: 5、更新別人的代碼。 6、看看是否有沖突,處理沖突。 7、你提交代碼,Git完成代碼備份。 我們一起看一個圖: ![](https://pic2.zhimg.com/80/v2-118ae5ac5e8d6d868f8508a99e16901d_hd.png) 好了,你知道Git怎么幫你備份了,那你要做的就是配合它,把流程走完,因為Git就是機器人,而且是不智能的,是不會自主學習和變通的,它只能走流程。 先看一看Git的命令行界面(上面安裝完Git之后截圖里的那個Git Bush Here) ![](https://pic4.zhimg.com/80/v2-bffc0c178b5e271258b3b05fcc4a4dfb_hd.png) 我們陪它走一遍流程(這里暫不涉及到創建庫,刪除庫,切換分支,回滾等等),因為一般情況下,這些操作是配置管理員的工作,開發人員不會涉及,所以我們直接從克隆一份遠程倉庫的代碼開始,看下圖: ![](https://pic4.zhimg.com/80/v2-2998480056e4818976cad475cba7ab9b_hd.png) 這就是最常見的走流程,Git沒什么,就是走一個備份的流程。 好了,走完了命令行,這里也來走一下小烏龜(TortoiseGit)。 還是走流程,只不過變成可視化了,你不用敲命令了。 看到剛剛右鍵菜單的git 克隆了沒?點擊它。 ![](https://pic1.zhimg.com/80/v2-a7897b3c8e83128164a0e038a001e640_hd.png) 輸入你的url,這個url就是你gitHub或gitLab上的倉庫地址。看一下github的: ![](https://pic1.zhimg.com/80/v2-9b1189416252449b9f8119256683defc_hd.png) 克隆下來了,本地就有了一個倉庫。 ![](https://pic4.zhimg.com/80/v2-9c7db85bdb9cd3ec7a116e354bd5bcd3_hd.png) 我們順便可以看一看分支,因為一般情況下,Git會有一個主分支master,你是沒有權限提交代碼的,還有一個work或者develop分支,這個是給你開發提交代碼用的,而master是給管理員最終測試完合并代碼用的。 我們這里只有一個master主分支: ![](https://pic4.zhimg.com/80/v2-aaf8457861e4874e3487b74f836d3e5f_hd.png) 好了先不管命令行,開始我們的小烏龜走流程之旅吧。 假設我們新增了ccc.txt文件,同時又修改了里面的bbb文件。變成這樣: ![](https://pic3.zhimg.com/80/v2-0fe46ed5635a209d905be2080824e1f6_hd.png) 繼續走流程,這時候好像得走到 add 那里了吧?嗯是的。 ![](https://pic2.zhimg.com/80/v2-5892c45cffdbee778368d96e6985649d_hd.png) 點擊Add。點確定就好了。實際上就是執行一句git add .,看看你新增了哪些文件。 接下來流程走到我們要更新代碼看看有沒有別人更新了啥對吧?再看看需不需要處理沖突。 也就是fetch和merge。(這兩個合起來就是pull)一個個來: fetch:點擊上面的fetch,到這里 ![](https://pic2.zhimg.com/80/v2-7fb2b0c7fac2ad8e92087412e013d261_hd.png) 嗯行,看看你更新了啥。然后按close關掉界面。 ![](https://pic2.zhimg.com/80/v2-faec6572b3008bde66b578510a2a2b2d_hd.png) 這里我們剛剛才clone下來的,所以沒啥其他別人的代碼。 接下來就開始合并了,將我們的代碼先在本地倉庫進行合并(這里沒其他人代碼不用處理沖突。),記得勾選no commit,先別提交我們的commit,最后一步再commit ![](https://pic2.zhimg.com/80/v2-79fa2f1c17429c7fdb0ad06fea4a89d9_hd.png) 好了之后,看到是最新的,無需處理沖突。這時候點commit。 ![](https://pic2.zhimg.com/80/v2-fddb319ea7c5b8802e27fc16aebd16ad_hd.png) 這里還記得上面的git commit -m ‘你這些備份的文件是干嘛的’。這時候你就要寫你干了啥了。 ![](https://pic1.zhimg.com/80/v2-d8fd22183cfc00bda474f572020cca50_hd.png) 將我們這些文件是用來干嘛的告訴Git之后,是不是就剩一個流程,那就是提交了? ![](https://pic4.zhimg.com/80/v2-3e4a84120d74639c96e5da8a341e133f_hd.png) 點擊這個push,push就是推,推送的意思。 ![](https://pic3.zhimg.com/80/v2-da2d514324df31fe67e4f525984997aa_hd.png) 這樣我們就完成了我們的推送,看一下遠程倉庫已經更新。 ![](https://pic2.zhimg.com/80/v2-aeec336f58debeaf193755304725da0d_hd.png) 這樣我們就完成了整一個的克隆、更新、提交代碼的流程。gitLab也是一樣的。
                  <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>

                              哎呀哎呀视频在线观看