Git
GIT 和 Django 項目
我有兩台伺服器,一台
Dev
伺服器和一台Production
伺服器。伺服器執行一個實時的Production
Django 站點,而Dev
伺服器有一個 Django 項目的副本。我使用Dev
伺服器在 Django 站點上工作,進行改進,修復錯誤等。一旦我對版本的工作方式感到滿意Dev
,我就會從伺服器上移動整個 Django 目錄Dev
並替換伺服器上的相同目錄Production
。兩台伺服器不在同一個區域網路上,所以這個過程並不簡單。到目前為止,我遇到了一些問題。
- 移動整個目錄既費力又費時
- 如果我只更改幾個文件,那麼替換幾個文件甚至比整個目錄更繁瑣,因為項目變得相當大,我擔心我會錯過一些東西
- 我搬東西後經常遇到權限問題
- 它的效率非常低,而且由於時間不夠,我沒有費心去想出一種新方法。現在它剛剛失控,我需要解決這種情況。
我想我需要轉移到這個過程的 GIT 儲存庫。但我的問題是我將如何設置這一切?
- 我是否在伺服器上託管儲存庫,
Production
從伺服器中提取Dev
,工作,然後送出?然後我會從Production
伺服器(與 repo 託管的同一台伺服器)中提取來執行目前的工作版本?- 我是否在伺服器上託管 repo
Dev
,從同一台伺服器中提取以在 repo 上工作,然後將工作版本拉到Production
伺服器上?- 我應該將儲存庫託管在與
Production
伺服器和Dev
伺服器(第三台伺服器)不同的伺服器上嗎?- 我需要擔心 Django 和 repos 的任何特殊注意事項嗎?
謝謝您的幫助 :)
我在 Django 開發和 GIT 工作了 18 個月。在此期間,我嘗試為自己託管一個 git 儲存庫,而今天我使用 GITHUB 來完成這項工作。它更容易和節省時間,只需花費一點成本。看看我的考慮:
- 除非您是具有 GIT 經驗的 Linux 專家,否則在 GITHUB 中託管您的項目會更便宜(考慮到時間就是金錢)。他們為公共項目提供免費的 GIT 託管(任何人都可以複製/分叉它們)。如果你想擁有一個私人儲存庫,他們也有一個(便宜的)付費 GIT 託管。
- GITHUB(或其他 GIT 託管公司)將使設置儲存庫變得更加容易,因此您可以在使用 GIT 時學習使用它(換句話說,由於 Web 界面,您無需學習比基本 GIT 命令更多的知識使用 GIT 之前的行語法)
- GIT 是一個分佈式控製版本系統。這意味著您放置儲存庫副本的每個地方都將擁有所有程式碼的完整歷史記錄,因此如果您選擇託管自己的 GIT 伺服器,則放置在 DEV 或 PRD 伺服器上是無關緊要的。其實你可以把它放在你自己的筆記本上,不用擔心失去數據,因為你在 DEV 和 PRD 也有一個副本。請記住,您必須從您的 GIT 伺服器在您的 DEV 和 PRD 伺服器上進行 PULL。
- 很容易編寫 FABRIC 腳本來從您自己的機器上更新 DEV 或 PRD 伺服器。你所要做的就是在你的 fabfile.py 中有這樣的東西:
定義部署生產(): 使用 cd('/home/my_user/my_project'): run("git pull") # 更新到最新版本 帶前綴('source ~/.virtualenvs/my_env/bin/activate'): 執行('./manage.py collectstatic --noinput') 定義生產(): """ 將環境設置為生產 """ continue = confirm('更新生產環境,繼續嗎?', default=False) 如果不繼續: abort('再見 - 感謝您在生產中什麼都不做!') env.hosts = ['my_server.my_domain.com.br'] env.key_filename = ['~/amazon/my_ssh_key.pem'] env.user = 'ubuntu' # 使用它來執行結構更新程序: 晶圓廠生產部署_生產
- 使用 virtualenv 和 virtualenvwrapper
- 在項目根目錄中創建一個名為 ‘.gitignore’ 的文件,並放置您不想通過 GIT 管理的文件(或文件模式),例如:*.pyc、.idea、.DS_Store(每行一個)
希望對你有幫助,好看!
如果您覺得這些答案有用,請給分。