2015-12-29 53 views
0

我希望能夠在我的項目文件夾內正好2種方式調用一個Git掛鉤:'提供'(也是'重新部署')git鉤子的最佳實踐?

  1. 更新代碼到最新版本,我會打電話給軟部署
  2. 提供空的目錄(或重新部署),我會打電話給硬盤部署

一個軟部署使用的大部分時間。它只是更新我的開發服務器上的代碼,例如git pull。這個git鉤子明顯是合併後

A 硬部署是我困惑的地方。有時候我想讓這個項目重新部署。這裏有一個例子:我想讓我的Dev服務器刷新它的數據庫並用虛擬數據重新填充它。我不想在每次git pull上都這麼做,只有一個Hard Deploy。在git語法中,這可能是resetcheckout,或者可能是git pull -f。我想如果git語法在普通開發人員的心目中與Hard Deploy自然等同。也許硬重置會讓人覺得重新部署?儘管在初始git checkout上發生的事情是必要的,但硬重置並不是平均開發人員在首次結帳後運行的事情。

我的想法是後結賬可能是把注意力集中在了硬部署最好的鉤子。主要的問題是,當我在我的本地開發環境中的分支之間跳轉時,我的本地開發環境爲git checkout mastergit checkout develop,我不希望它重新設置&重新緩存所有內容每次。我寧願沒有3鉤解決方案:'部署','更新','重新部署'。爲簡單起見,'部署'重新部署'使用相同的掛鉤將會很好。

所以這是我確切的問題:我應該使用什麼混帳掛鉤時,我想硬部署(相對於軟部署)我的項目?

回答

1

沒有鉤子可以讓你輕鬆地區分你的兩個用例 - 在鉤子中,你不能訪問傳遞給git的命令行開關。最簡單的方法可能是簡單地在存儲庫內或旁邊放置一個小型shell腳本,並將其用於硬部署。

如果你想添加一些「語法糖」,你可以在git中定義別名。下面是本地並稱別名您的倉庫裏的一個例子:

git config alias.harddeploy '!~/bin/myproject-harddeploy' 

(該!告訴混帳運行外部命令,而不是一個git子命令)

然後,用戶可以只運行git harddeploy