2015年1月29日 星期四

git-ftp心得

git-ftp有兩種解法
https://github.com/ezyang/git-ftp ( 可搭配hook,只傳新檔案和移除舊檔案 )
https://github.com/git-ftp/git-ftp ( 傳tracked的檔案 )

https://github.com/git-ftp/git-ftp
安裝:
# apt-get install git-ftp
使用(在 client repository):
$ git ftp init -u username -p password - ftp://your.ftp.domain/htdocs/  #第一次要用init
or
$ git ftp push -u username -p password - ftp://your.ftp.domain/htdocs/

https://github.com/ezyang/git-ftp ( 搭配hooks的 post-receive )
安裝:
# apt-get install python-setuptools ( 如果沒有easy_install,就先裝這個 )
# easy_install gitpython
在remote repository上根目錄建立 ftpdata ( 與config, HEAD同一層 ):
[master]
username=ftp_username
password=ftp_password
hostname=your.ftp.domain
remotepath=/htdocs  #你的ftp上傳路徑
ssl=no  #如果ftp 不支援https ,要改no

在hooks下建立 post-receive(權限775,直接複製github上的內容):
#!/bin/bash
# You may install this post-receive hook in your remote git repository
# to have automatic file upload when pushing to the repository.
while read OLD_COMMIT NEW_COMMIT REFNAME; do
    BRANCH=${REFNAME#refs/heads/}

    if [[ `grep "^\[$BRANCH\]$" ftpdata` ]]; then
        echo "Uploading $BRANCH..."
        $(dirname $(readlink -f "$0"))/git-ftp.py -b "$BRANCH" -c "$NEW_COMMIT" || exit $?
    fi  
done
true

在hooks下建立 git-ftp.py(權限775,直接複製github上的內容):


然後在client repository,git push後 就會更新程式到ftp上去

參考資料:
http://stackoverflow.com/questions/2950107/git-push-into-production-ftp

沒有留言:

張貼留言