<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之旅 廣告
                ## 了解什么是GitHooks 簡單來說就是Git 能在你執行`git push`、`git commit`等命令后的特定時間執行指定的腳本。 例如:使用`git push`向服務器同步本地代碼完畢后,服務端的git就會自動幫我們執行`post-receive`腳本,我們就可以在`post-receive`腳本里面編寫我們的自動部署代碼啦!(這需要一點點shell腳本的編寫知識哦~)。 有兩組這樣的鉤子:分為客戶端的和服務器端的。 ## 編寫Hook 首先打開我們原先在服務器上創建的`裸倉庫`,在裸倉庫里面有一個`hooks`文件夾,在里面有很多git給我寫的hook例子,例如筆者的hooks文件夾就有這些hook。 ``` ├── applypatch-msg.sample ├── commit-msg.sample ├── post-receive # 這個自己寫的,用于自動部署的腳本,會在同步代碼完成時由git來運行它 ├── post-update.sample ├── pre-applypatch.sample ├── pre-commit.sample ├── prepare-commit-msg.sample ├── pre-push.sample ├── pre-rebase.sample └── update.sample ``` 想要了解更多hook可以查看[git官方文檔](https://git-scm.com/book/zh/v2/%E8%87%AA%E5%AE%9A%E4%B9%89-Git-Git-%E9%92%A9%E5%AD%90) post-receive的具體內容如下 ``` # 該環境變量會影響部分git命令的執行 unset GIT_DIR # 獲取生產環境所有文件的寫權限,防止deploy.sh中更改了權限,導致無法更新情況 chmod u+w -R /www/wwwroot/TBlog # 忽略文件的權限,否則后面更改deploy.sh的權限,會導致無法git pull,因為版本內容不一致。 git config core.filemode false echo '開始更新生產環境的代碼...' cd /www/wwwroot/TBlog git pull origin master # 執行部署腳本 if [ -d ] then echo '執行項目的部署腳本' chmod u+x /www/wwwroot/TBlog/deploy.sh # 給予執行權限 /www/wwwroot/TBlog/deploy.sh fi echo '生產倉庫更新完畢' ```
                  <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>

                              哎呀哎呀视频在线观看