[英]Git Update Files on Repo Change
我有一個運行 Node.js / React 應用程序的 VPS。
每次將數據推送到 git(集線器)時,我都想更新 vps 中的文件。
我發現,使用這個答案,我可以在 git 中添加一些鈎子,在“post-receive”上執行命令。
我不太明白的:
他為什么要啟動另一個 git ? 難道他不能在 .git 目錄中完成此操作並創建 hooks/post-receive 文件嗎?
為什么git checkout -f
? 如果目標是更新本地文件,那么 nodemon / create-react-app 重新啟動服務器 / 應用程序,為什么不執行git pull
代替呢?
有沒有更好的方法來做到這一點?
在推薦的答案中,沒有人在使用 GitHub,也沒有其他 Git 存儲庫。 所以你的問題的答案:
難道他不能在 .git 目錄中完成此操作並創建 hooks/post-receive 文件嗎?
是:不,首先沒有.git
目錄。 目標機器什么都沒有,沒有 Git 存儲庫,沒有工作樹等。 git init --bare
創建了 Git 存儲庫(“.git 目錄”)。
git checkout -f
是push to deploy的窮人/低質量實現。 接收存儲庫通常是“裸露的”,這個也不例外。
為什么不執行
git pull
呢?
這將需要創建第三個Git 存儲庫。 那將是一個選擇。
“更好”在旁觀者的眼中。 有很多方法可以做到這一點,每種方法都有自己的優點和缺點。 另請參閱使用 Git push 部署項目,其中指出自 Git 2.3 以來, receive.denyCurrentBranch = updateInstead
可用; 它在 2015 年之前不可用(在 2015 年,許多人安裝了舊版本的 Git)。
進一步注意,如果您使用 GitHub 作為托管系統,這會更改許多變量。 你和我在這里鏈接的問題和答案是針對那些不使用 GitHub 的人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.