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

                [TOC] ## 簡介 在這一節里,我們將會學習: - 什么是 Git ? - 如何為 Git 做初始化配置? - Git 的基本使用; - 什么是 GitHub? - 如何添加 SSH Key 到 GitHub 上? - 如何新建 GitHub 項目? - 如何提交代碼到 GitHub? ## 什么是 Git? Git 是 Linux 的創始人 Linus Torvalds 開源的一款分布式版本控制系統,以幫助開發者更好的對項目進行版本管理。每一個優秀的開發者在進行項目開發時都會第一時間給自己的項目加上 Git ,以便能更好的追蹤代碼修改,進行版本回溯等操作。在多人協作的開發過程中, Git 更是必不可少的。因此,本書中將使用 Git 來管理項目的所有代碼,讓你在閱讀本書的時候能夠體會到 Git 的強大,了解實際開發中我們對 Git 的應用。 在現代化的項目開發中,Git 基本上是標配。 ## Git 的基本設置 上一節我們安裝的虛擬機 Homestead 中 已經安裝了 Git ,本教程的所有 Git 操作都會發生在 Homestead 虛擬機中,因此我們需要先對其進行設置。 首先我們對 Git 進行用戶名和郵箱進行設置,請參照下面格式,替換為你自己常用的用戶名和郵箱來完成設置: ```shell $ git config --global user.name "Your Name" $ git config --global user.email your@example.com ``` >[info] 解釋: --global 選項代表對 Git 進行全局設置。 這里個人信息設置的作用,是為你在代碼提交時自動署名標記,方便查看提交日志時區分作者。如: ![Git Log](http://tbs.zhanghong.info/images/chapters/02/030_git_log.jpg) 接下來設置 Git 推送分支時相關配置: ```shell $ git config --global push.default simple ``` 此設置是 Git 命令 push 的默認模式為 simple,當我們執行 git push 沒有指定分支時,自動使用當前分支,而不是報錯。 ## Git 初體驗 對于有經驗的開發者來說,在他每次新建完開發項目的時候,首先要做的第一件事就是將自己的項目納入到 Git 代碼版本管理中,完成這個操作一般需要以下這幾個步驟: 接下來我們新建一個名為 Demo 的項目來試驗。以下命令請跟著我操作。 1、對 Git 進行初始化: ```shell $ mkdir ~/Code/Demo $ cd ~/Code/Demo $ touch readme.md $ git init ``` 2、將項目所有文件納入到 Git 中: ```shell $ git add -A ``` 我們可以通過在 `.gitignore` 文件中進行設置,來選擇忽略掉一些我們不想納入到 Git 版本管理中的文件(如緩存文件)。因此上面描述的『所有文件』指的是 **不在** `.gitignore` 中被忽略的文件。 3、檢查 Git 狀態: ```shell $ git status ``` ![Git Status](http://tbs.zhanghong.info/images/chapters/02/030_git_status.jpg) 上面命令將會向你輸出存放在 Git 暫存區的文件,這意味著這些文件還未真正提交到 Git 中。 4、保留改動并提交: ```shell $ git commit -m "Initial commit" ``` 上面這行命令會將暫存區的文件都提交到 Git,`-m` 選項后面帶的參數表示本次提交的簡單描述。 5、查看歷史提交記錄: ```shell $ git log commit 9e3eb5194f6fe4f505b07e152bf84c78273f45a5 (HEAD -> master) Author: zhanghong <zhanghong_bean@126.com> Date: Tue Sep 17 02:22:13 2019 +0000 Initial commit ``` 從輸出信息中可以很清晰的看到每次提交的作者、日期、描述等信息。注意看這里的 `Author` 項的內容就是我們上面設置的用戶信息。 按 `q` 可退出查看。 ## Git 的強大 通過上面 Git 的基本講解,你可能還無法真正體會到 Git 的強大。在平時開發中,我們有時候可能會因為手誤或其它原因將某些重要文件刪除。如果之前有將此文件納入到 Git 中,這時便可以利用 Git 來對誤刪文件進行恢復。請看下面演示。 我們先假裝不小心刪除 readme.md 文件: ```shell $ rm readme.md $ ll ``` 使用 `ll` 打印出文件目錄列表時,能看到 `readme.md` 文件已被成功移除。 查看 Git 狀態: ```shell $ git status On branch master Changes not staged for commit: (use "git add/rm <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) deleted: readme.md no changes added to commit (use "git add" and/or "git commit -a") ``` 能看到有相關提示顯示 `readme.md` 文件已被刪除,這時你可以選擇將刪除的文件進行恢復或提交。 下面我們使用 Git 進行恢復被刪除文件: ```shell $ git checkout -f $ ll ``` 這時能看到 `readme.md` 文件已成功恢復。`git checkout -f` 的作用是將在暫存區的更改文件進行強制撤銷。 上面強大的功能僅為 Git 的冰山一角,后面教程將講解更多關于 Git 的使用。如果你想學習更多關于 Git 相關的知識,可以查閱 [《Pro Git》](https://git-scm.com/book/zh/v2) 一書進行學習。 ## 什么是 GitHub ? [GitHub](https://github.com/) 是目前全球最大的代碼托管平臺,許多非常著名的項目如 [Linux](https://github.com/torvalds/linux)、[composer](https://github.com/composer/composer)、[ThinkPHP](https://github.com/top-think/framework) 等都托管在 GitHub 上。開發者們利用 GitHub 來進行團隊協作開發,查閱或收藏別人開源項目的優秀代碼,針對某個 Bug 進行技術討論等。使用 GitHub 的好處非常多,[本書項目代碼](https://github.com/zhanghong/ThinkBBS) 也托管在 GitHub 上面。 如果要使用 GitHub,你需要完成下面這幾步操作: ### 1. 注冊 GitHub 賬號 如果你還沒有 GitHub 賬號的話,請先 [注冊](https://github.com/join?source=header-home)。 ![Github Signup](http://tbs.zhanghong.info/images/chapters/02/030_github_signup.png) ### 2. 為 GitHub 賬號設置 SSH Key 出于安全考慮,Github 服務器和我們本地的通訊要求使用 SSH Key 來驗證。在前面『環境部署』的章節中,我們已經在主機中生成過 SSH Key,并且 Homestead 在初始化時,通過 Homestaed.yaml 文件中的 `keys` 選項已經把主機中的 SSH Key 私鑰復制到虛擬機中,所以這里我們無需再次生成 SSH Key。 接下來將 SSH Key 添加到 ssh-agent 中: ```shell $ eval "$(ssh-agent -s)" $ ssh-add ~/.ssh/id_rsa ``` 我們再回到 主機中 打印出公鑰 id_rsa.pub 文件里的內容,并把輸出的內容復制到剪貼板里: ```shell > cat ~/.ssh/id_rsa.pub ``` ![RSA Pub Key](http://tbs.zhanghong.info/images/chapters/02/030_github_rsa_pub.jpg) 最后我們需要將公鑰添加到 GitHub 賬號,先打開 [Github SSH 令牌管理頁面](https://github.com/settings/keys) ,然后把你剛剛復制的令牌按照下圖示例添加: ![Add RSA Pub Key](http://tbs.zhanghong.info/images/chapters/02/030_github_add_key.png) ### 3. 提交代碼到 Github 在配置完 GitHub 賬號之后,我們便可以開始在上面存放項目代碼了。首先 [新建一個 GitHub 倉庫](https://github.com/new),取名為 hello_demo,填上 `Description` 項目描述,`Initialize this repository with a README` 這一項無需勾選,因為 Demo 已默認幫我們創建好了 `readme.md` 文件。 ![Create Repo](http://tbs.zhanghong.info/images/chapters/02/030_github_create_repo.jpg) 創建完成之后,使用以下命令將代碼上傳到 GitHub 上(將 `your_username` 替換為你自己的 GitHub 用戶名): ```shell $ cd ~/Code/Demo $ git remote add origin git@github.com:your_username/hello_demo.git $ git push -u origin master ``` 至此,項目已成功托管到 GitHub 上。 ![Project Home](http://tbs.zhanghong.info/images/chapters/02/030_github_repo_demo.jpg) 后面我們如果對本地代碼進行了改動,只需運行這 3 條命令即可將代碼推送到安全可靠的 GitHub 上: >[warning] 以下命令作為知識重溫,不需要執行。 1、保存到暫存區: ```shell $ git add -A ``` 2、輸入描述信息并提交到本地的 Git: ```shell $ git commit -m "Say something" ``` 3、將代碼推送到 GitHub: ``` $ git push ```
                  <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>

                              哎呀哎呀视频在线观看