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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # git 第一天: git歷史--git原理--git常用命令 ### 1、git 歷史 ????Git的誕生確實是一個有趣的故事,我們知道,當年Linus創建了開源的Linux,從此,Linux系統不斷發展,現在已經成為最大的服務器系統軟件了。(請不要傻傻分不清Linus和Linux) ????但是隨著Linux的不斷壯大,就需要各種版本控制了,起初Linus帶著他的小弟們使用的是BitKeeper(商業版本控制系統),之后呢由于某種原因BitKeeper的公司不讓他們使用了,于是Linus自己花了兩周時間寫出了Git并且開源了(BitKeeper已哭暈在廁所),阿彌陀佛,幸虧BitKeeper不讓Linus他們用了,要不然我們現在也不會有這么好用的Git了,博主更不會在這寫這篇博文了。 ????之后的歲月里,漸漸有了github,coding等一些可以使用git存儲的網站,Git的江湖地位變得無可替代了,如果你是個開發者卻還不會使用Git那就太out了。 ### 1、git 原理 這里先引用一張圖解釋Git 工作原理: ![](https://img.kancloud.cn/b6/b3/b6b377ba4e6584063fc7fde91597cec3_1172x340.png) 原理詳細 * Workspace:工作區,執行`git add *`命令就把改動提交到了暫存區,執行`git pull`命令將遠程倉庫的數據拉到當前分支并合并,執行`git checkout [branch-name]`切換分支 * Index:暫存區,執行`git commit -m '說明'` 命令就把改動提交到了倉庫區(當前分支) * Repository:倉庫區(或本地倉庫),執行`git push origin master`提交到遠程倉庫,執行`git clone 地址`將克隆遠程倉庫到本地 * Remote:遠程倉庫,就是類似github,coding等網站所提供的倉庫 **注**:實際操作命令和上述命令會有所不同,這里這是解釋清楚命令和倉庫的關系。 ### 3、git常用命令 #### 3.1、git 術語 | 術語 | 定義 | | --- | --- | | 倉庫(Repository) | 一個倉庫包括了所有的版本信息、所有的分支和標記信息。在Git中倉庫的每份拷貝都是完整的。倉庫讓你可以從中取得你的工作副本。 | | 分支(Branches) | 一個分支意味著一個獨立的、擁有自己歷史信息的代碼線(code line)。你可以從已有的代碼中生成一個新的分支,這個分支與剩余的分支完全獨立。默認的分支往往是叫master。用戶可以選擇一個分支,選擇一個分支執行命令`git checkout branch`. | | 標記(Tags) | 一個標記指的是某個分支某個特定時間點的狀態。通過標記,可以很方便的切換到標記時的狀態,例如2009年1月25號在testing分支上的代碼狀態 | | 提交(Commit) | 提交代碼后,倉庫會創建一個新的版本。這個版本可以在后續被重新獲得。每次提交都包括作者和提交者,作者和提交者可以是不同的人 | | 修訂(Revision) | 用來表示代碼的一個版本狀態。Git通過用SHA1 hash算法表示的id來標識不同的版本。每一個 SHA1 id都是160位長,16進制標識的字符串.。最新的版本可以通過HEAD來獲取。之前的版本可以通過"HEAD~1"來獲取,以此類推。 | #### 3.2 忽略特定的文件 可以配置Git忽略特定的文件或者是文件夾。這些配置都放在`.gitignore`文件中。這個文件可以存在于不同的文件夾中,可以包含不同的文件匹配模式。 比如`.gitignore`內容可以如下: ~~~ 忽略某文件 npm-debug.log 忽略文件夾 dist/ node_modules/ .idea/復制代碼 ~~~ 同時Git也提供了全局的配置,core.excludesfile。 > 忽略之后的文件或是文件夾Git就不去提交里面的內容了。 #### 3.3.gitkeep來追蹤空的文件夾 Git會忽略空的文件夾。如果你想版本控制包括空文件夾,根據慣例會在空文件夾下放置`.gitkeep`文件。其實對文件名沒有特定的要求。一旦一個空文件夾下有文件后,這個文件夾就會在版本控制范圍內。 #### 3.4 配置 ~~~ # 顯示當前的Git配置 $ git config --list # 編輯Git配置文件,只是配置用戶信息的話直接看下面兩行命令即可 $ git config -e [--global] # 設置提交代碼時的用戶信息,是否加上全局--global自行決定,一般是直接設置全局的。另外用戶郵箱需要注意最好使用gmail,QQ也可以,需要和你遠程倉庫保持一致不然你的contribution是不會被記錄在遠程倉庫的 $ git config [--global] user.name "[name]" $ git config [--global] user.email "[email address]"復制代碼 ~~~ > Git的設置文件為`.gitconfig`,它可以在用戶主目錄下(全局配置),也可以在項目目錄下(項目配置)。 #### 3.5 常用命令 #### 在當前目錄創建一個文件夾 $ mkdir [project-name] #### 在當前目錄新建一個Git代碼庫 $ git init #### 新建一個目錄,將其初始化為Git代碼庫 $ git init [project-name] #### 下載一個項目和它的整個代碼歷史(各個分支提交記錄等) $ git clone [url] `git init`后會出現.git文件夾,里面有配置文件,如果沒有git bash里面輸入`ls -lah`就可以看到了 ##### 添加當前目錄的所有文件到暫存區 $ git add * ##### 提交暫存區到倉庫區 $ git commit -m [message] ##### 為遠程Git更名為origin $ git remote add origin git@github.com:abcd/tmp.git ##### 推送此次修改,這是首次推送需要加上-u,之后推送就可以直接git push origin master,origin是遠程Git名字,這個可以自己定義,不過一般是用origin罷了,master是默認的分支,如果不在master分支提交需要寫清楚分支名稱 $ git push -u origin master ##### 添加指定文件到暫存區 $ git add [file1] [file2] ... ##### 添加指定目錄到暫存區,包括子目錄 $ git add [dir] ##### 添加當前目錄的所有文件到暫存區 $ git add * ##### 添加每個變化前,都會要求確認 對于同一個文件的多處變化,可以實現分次提交 $ git add -p ##### 刪除工作區文件,并且將這次刪除放入暫存區 $ git rm [file1] [file2] ... ##### 停止追蹤指定文件,但該文件會保留在工作區 $ git rm --cached [file] ##### 改名文件,并且將這個改名放入暫存區 $ git mv [file-original] [file-renamed] # 提交暫存區到倉庫區 $ git commit -m [message] ##### 提交暫存區的指定文件到倉庫區 $ git commit [file1] [file2] ... -m [message] ##### 提交工作區自上次commit之后的變化,直接到倉庫區 $ git commit -a ##### 提交時顯示所有diff信息 $ git commit -v ##### 使用一次新的commit,替代上一次提交 如果代碼沒有任何新變化,則用來改寫上一次commit的提交信息 $ git commit --amend -m [message] ##### 重做上一次commit,并包括指定文件的新變化 $ git commit --amend [file1] [file2] ... ##### 提交更改到遠程倉庫 $ git push origin master ##### 拉取遠程更改到本地倉庫默認自動合并 $ git pull origin master 參考鏈接: [https://gitforwindows.org/index.html](https://gitforwindows.org/index.html) [http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html](http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html) 鏈接:https://juejin.im/post/582bd0b4da2f600063d4f89e
                  <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>

                              哎呀哎呀视频在线观看