簡體   English   中英

回購更改上的 Git 更新文件

[英]Git Update Files on Repo Change

我有一個運行 Node.js / React 應用程序的 VPS。

每次將數據推送到 git(集線器)時,我都想更新 vps 中的文件。

我發現,使用這個答案,我可以在 git 中添加一些鈎子,在“post-receive”上執行命令。

我不太明白的:

  1. 他為什么要啟動另一個 git ? 難道他不能在 .git 目錄中完成此操作並創建 hooks/post-receive 文件嗎?

  2. 為什么git checkout -f 如果目標是更新本地文件,那么 nodemon / create-react-app 重新啟動服務器 / 應用程序,為什么不執行git pull代替呢?

  3. 有沒有更好的方法來做到這一點?

  1. 在推薦的答案中,沒有人在使用 GitHub,也沒有其他 Git 存儲庫 所以你的問題的答案:

    難道他不能在 .git 目錄中完成此操作並創建 hooks/post-receive 文件嗎?

    是:不,首先沒有.git目錄。 目標機器什么都沒有,沒有 Git 存儲庫,沒有工作樹等。 git init --bare創建了 Git 存儲庫(“.git 目錄”)。

  2. git checkout -fpush to deploy的窮人/低質量實現。 接收存儲庫通常是“裸露的”,這個也不例外。

    為什么不執行git pull呢?

    這將需要創建第三個Git 存儲庫。 那將是一個選擇。

  3. “更好”在旁觀者的眼中。 有很多方法可以做到這一點,每種方法都有自己的優點和缺點。 另請參閱使用 Git push 部署項目,其中指出自 Git 2.3 以來, receive.denyCurrentBranch = updateInstead可用 它在 2015 年之前不可用(在 2015 年,許多人安裝了舊版本的 Git)。

進一步注意,如果您使用 GitHub 作為托管系統,這會更改許多變量。 你和我在這里鏈接的問題和答案是針對那些使用 GitHub 的人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM