githook監聽代碼push命令


環境:一台公司的開發服務器(可以隨便裝東西~),自己的電腦

1.先在兩台機器上面安裝好git,然后在服務器上面初始化一個空的庫,然后還有一個代碼庫

cd /home/baizhi/src
git init --bare DAP_go.git
git clone git@service/DAP_go.git  這里是公司的倉庫

2.然后本地代碼的關聯一下,remote是可以關聯多個遠程倉庫的,我關聯了兩個,一個自己初始化的一個公司的,這里用自己的來配置hook

mkdir DAP_go
cd DAP_go
git init
git add remote baizhi baizhi@ip:/home/src/DAP_go.git

3.配置服務器上面的hooks

cd DAP_go.git/hooks
mv post_receive.sample post_receive
vi post_receive(內容如下)
#!/bin/sh

unset GIT_DIR
cd
cd /home/baizhi/src/DAP_go
git pull

exit 0

4.然后在本地的DAP_go上面修改代碼,push成功后就會觸發hooks了,我這里比較坑爹,我得提交兩次,一次提交到公司的(例行公事,等於我的代碼做了兩次備份,再也不怕硬盤壞掉了:),一次提交到服務器上自己新建的。

切換到自己本地的DAP_go下
vi test
hello
git add .
git commit
git push(我這邊默認是到了公司的倉庫,那么現在公司的倉庫有新代碼了)
git push baizhi dev(baizhi是服務器上遠程庫的名字,一般關聯一個的時候用的一般是origin,dev是分支) 
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 266 bytes | 0 bytes/s, done.(到這里是代碼寫入到服務器上自己初始化的庫,下面是hook的腳本執行的過程)
Total 3 (delta 1), reused 0 (delta 0)
remote: From ip:server/dap_go
remote:    7a2f32a..d9df2ae  dev        -> origin/dev
remote: Updating 7a2f32a..d9df2ae
remote: Fast-forward
remote:  test |    1 +
remote:  1 files changed, 1 insertions(+), 0 deletions(-)
To baizhi@ip:/home/baizhi/src/DAP_go.git
   7a2f32a..d9df2ae  dev -> dev

5.然后在服務器的DAP_go上看看是不是最新的代碼,這里顯示了Already up-to-date,說明成功了

[baizhi@dev DAP_go]$ git pull
Already up-to-date.

6.上面做的這些就可以實現代碼變動的監控,下面docker要做的任務就是對代碼進行熱編譯。然后上面的post_reciver的腳本可能還需要添加構建新的docker鏡像的命令,然后就可以在測試,或者正式環境上拉取最新的鏡像

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM