在我工作的環境中,開發人員直接使用即時部署 Web 伺服器上的腳本和映像檔。這很可怕,並且已經引起了一些問題,儘管到目前為止,問題少得令人驚訝。這些更改根本不使用原始碼管理,更改是在實時伺服器上進行的,並且僅在實時伺服器上進行。我不知道如何做到這一點,以便在我將變更部署到即時 Web 伺服器時保留/合併其他開發人員在即時 Web 伺服器上所做的變更。使用原始碼控制這個問題似乎會讓事情變得更糟而不是更好。
我親自設定了 git 和 svn 伺服器,並在過去幾年中在許多桌面應用程式和行動應用程式專案中使用了 git 和 svn 的版本控制。但這讓我難住了。
答案1
最佳實務是使用 git 作為部署方式的一部分。如此之多以至於你會發現關於 git 其他用途的答案相對較少。
也就是說,git 可以有多種用途。如果您的部署是部署到即時伺服器,而不是來自 git,那麼將變更提交到 git 仍然有價值,因此您至少可以看到何時更改了哪些內容,然後回滾。您將失去的是明智的註釋並將更改分組到提交中,以便您可以看到要快速回滾到的位置,並且可以看到不同文件中的哪些更改可能相互依賴。
完全有可能讓您的即時程式碼成為 git 工作目錄,並且您可以透過 cron 經常自動更新儲存庫。
等管理員(https://github.com/joeyh/etckeeper)在某些方面是可比的。它旨在記錄伺服器的 /etc 目錄(而不是網站)中的更改,但它在其他方面與您的想法非常相似。它可能會在提交掛鉤等中包含一些有用的想法,但由於覆蓋了多個不同的 VCS 系統以及與多個作業系統的兼容性,它也變得複雜。