国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

在腳本中調用git命令:指定git命令運行上下文

Vultr / 3066人閱讀

摘要:倉庫掛在上,而提供功能,可以在指定事件根據自動部署這一用途,這里指的當然主要是事件了發生后,發一個請求到指定來觸發更新。

背景

今天琢磨著利用git來做服務器自動部署。git倉庫掛在coding.net上,而coding.net提供webhook功能,可以在指定git事件(根據“自動部署”這一用途,這里指的當然主要是push事件了)發生后,發一個請求到指定URL來觸發更新。

問題

由于我本人用的是php,所以自然是php接收到coding.net的請求后,執行一段shell命令來啟動git拉取代碼。這一部分還是比較順利的,問題是,啟動git拉取代碼的shell命令要怎么寫呢?

想想我們平時是怎么做的呢?

$ cd /xxxx/xxx #進到git項目目錄
$ git pull #拉取代碼

嗯,看起來很簡單,那我們shell命令也這么寫吧。

fatal: Not a git repository (or any of the parent directories): .git

哎?!這是什么情況,我路徑都是對的啊,怎么會找不到.git目錄?

解決方案

在stackoverflow一番搜尋后,尋得問題原因:git命令依賴于環境變量GIT_DIRGIT_WORK_TREE,這兩個環境變量才是git真正的運行上下文。而在shell命令里直接執行cd是不會跟著改變這兩個環境變量的,因此,就可能發生上述的錯誤。

知道原因就好辦了,我們也不需要使用cd命令了,直接用--git-dir--work-tree來傳入這兩個參數即可:

$ git --git-dir="/xxx/xxx/.git" --work-tree="/xxx/xxx" pull # 注意這兩個參數是傳給git命令的,要放在"git"的后面
未完待續

我不解的是,為什么在控制臺里直接cd就可以改變GIT_DIRGIT_WORK_TREE這兩個變量呢?求大神指教。

參考資料

getting “fatal: not a git repository: "."” when using post-update hook to execute "git pull" on another repo

git --git-dir not working as expected

git(1) Manual Page

Git系列之二 --- git-dir & work-tree

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/22483.html

相關文章

  • Electron入門介紹

    摘要:本文主要講解的入門。可以幫助我們管理包的下載依賴部署發布等。可以認為是中的。后續使用中,全部替換為即可。命令根據它,自動下載所需模塊用于創建窗口和處理系統事件安裝包的位置。 Electron是什么 可以認為Electron是一種運行環境庫,我們可以基于此,用HTML、JS和CSS寫桌面應用。PC端的UI交互,主要有web應用和桌面應用。具體采用哪種方式,主要看系統的應用場景,哪個更合適...

    wing324 評論0 收藏0
  • 2018 年了,你還是只會 npm install 嗎

    摘要:無需手動拷貝文件或者創建軟鏈接到目錄,有更優雅的解決方案。這是因為識別協議的,得知這個包需要直接從文件系統中獲取,會自動創建軟鏈接到中,完成安裝過程。 nodejs 社區乃至 Web 前端工程化領域發展到今天,作為 node 自帶的包管理工具的 npm 已經成為每個前端開發者必備的工具。但是現實狀況是,我們很多人對這個nodejs基礎設施的使用和了解還停留在: 會用 npm insta...

    libxd 評論0 收藏0
  • Ubuntu 17.04 x64 安裝 Docker CE 初窺 Dockerfile 部署 Ngi

    摘要:容器運行時,會打印一條信息消息并退出。因此,更好地做法是將需要使用的用戶加入用戶組。涉及到了兩條指令,和。執行命令指令是用來執行命令行命令的。 Docker 是個劃時代的開源項目,它徹底釋放了計算虛擬化的威力,極大提高了應用的運行效率,降低了云計算資源供應的成本!使用 Docker,可以讓應用的部署、測試和分發都變得前所未有的高效和輕松! 無論是應用開發者、運維人員、還是其他信息技術從...

    fyber 評論0 收藏0
  • Ubuntu 17.04 x64 安裝 Docker CE 初窺 Dockerfile 部署 Ngi

    摘要:容器運行時,會打印一條信息消息并退出。因此,更好地做法是將需要使用的用戶加入用戶組。涉及到了兩條指令,和。執行命令指令是用來執行命令行命令的。 Docker 是個劃時代的開源項目,它徹底釋放了計算虛擬化的威力,極大提高了應用的運行效率,降低了云計算資源供應的成本!使用 Docker,可以讓應用的部署、測試和分發都變得前所未有的高效和輕松! 無論是應用開發者、運維人員、還是其他信息技術從...

    seanHai 評論0 收藏0

發表評論

0條評論

Vultr

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<