為什么要使用Git代替FTP的原因:
由於本人菜鳥+窮屌,玩不起VPS和其他大牌的雲主機,所以呢就只能在景安(這不是廣告。。)申請了免費的虛擬主機,就想着自己玩玩而已,免費的嘛,空間流量什么的就不討論了,主要覺得比較麻煩的就是代碼提交,由於使用的是FTP Server進行代碼提交的,所以每次改點東西都得打開filezilla,改的多的就整個文件覆蓋,改的少的就打開到相應的文件夾進行選擇性的修改,這也就導致了操作煩死了,還有一點就是沒有版本管理,一旦出了問題就賊尷尬了,所以就有了使用版本管理工具來連接FTP Server進行版本管理和代碼提交;
由於本人工作中用的是SVN,所以起初也是在網上找關於SVN提交后同步到FTP的相關文章,大致是通過利用SVN的HOOK來實現:
但是。。。真心看不懂那啥shell語法,所以換到Git方向,想了解具體SVN提交后同步FTP的同學可以查看下面的文章:
SVN 提交后自動同步到FTP
那接下來就來講講我實現的方式: git實現FTP Server代碼提交;
使用工具: Git、git-ftp;
-
安裝git;
官方下載地址:這有個問題,就是小水管實在是下載速度賊雞兒慢,常常就停了,最好的方式還是找度娘搜索 git+版本號,會有很多好人會下載后保存到國內雲盤中,這速度當然就飛起;官網的,我科學上網也速度賊慢,搞不懂了,有什么好方法還請大神教教;
安裝時可以無腦下一步,沒什么影響,如果要看安裝教程可以參考:安裝git教程 -
有需要的話,選擇性安裝git圖形化工具,還有中文包很友好;
git小烏龜,安裝也很簡單,可以選擇安裝路徑,其他的默認選項即可; -
安裝git-ftp
git-ftp 的 github 網址
查看其中的 INSTALL.MD
頂上一大段主要說的是下載帶sftp支持的curl,但實際上新版git裝完,git bash里的curl支持sftp;所以就可以直接在 git bash 中執行以下代碼安裝git-ftpcurl https://raw.githubusercontent.com/git-ftp/git-ftp/master/git-ftp > /bin/git-ftp chmod 755 /bin/git-ftp
應該是將git-ftp文件下載到到git/usr/bin,不知道可不可以直接在github上下載git-ftp到git/usr/bin;
注意:這塊在新win10系統中可能出現以下錯誤:
這個是因為系統沒有修改Git/usr/bin的權限,找到C:\Program Files\Git\usr文件夾,根據網上搜索到的方式添加完全控制權即可安裝完之后可以使用
$ git-ftp -h
檢測是否安裝成功,出現如下圖說明安裝成功,ctrl + z 關閉;
-
創建git倉庫
打開你要上傳至FTP的文件夾目錄,使用git bash 運行git init
,在文件夾中生成一個隱藏的 .git文件夾,包含了該倉庫的一些配置,主要的git config -
配置git config中關於ftp的信息
注意:如果你要同步的文件夾不是FTP的頂層,需在FTP地址中加入相應的文件名 比如 ftp://127.0.0.1/WEB
接下來將FTP服務的賬號密碼路徑等寫入git config中,省得每次都得輸入;git config git-ftp.url ftp://127.0.0.1/project/dowob git config git-ftp.user dev1234 git config git-ftp.password 1234
配置完成后git config為:
如果你只想同步本地目錄中的某一個文件夾時,可以這么配置:
git config git-ftp.syncroot ./dowob/assets 目錄根據自己結構定
-
提交同步代碼;
接下來就是git的正常使用了,再修改了代碼后使用git同步,然后commit,接下來就是最重要的一步,push到FTP服務器上:git ftp push
, ** 注意這里不是git-ftp **
然后就可以去刷新你的頁面查看修改情況了; -
git ftp 常用命令
https://github.com/git-ftp/git-ftp/blob/master/man/git-ftp.1.md
最好是看看上面的連接說的比較詳細;
git ftp init 用於本地有提交,遠程ftp url為空,上傳所有提交到遠程並創建.git-ftp.log
git ftp catchup 用於遠程有內容,本地是空庫,在遠程創建.git-ftp.log,再git ftp download
常用
git ftp pull 拉取(注意:拉取的時候要確保你的當前文件夾是一個git倉庫,如果不是,請先執行 git init, 然后修改 。git中的config,添加上 git-ftp的用戶名、密碼、url等配置)
git ftp push 推送
總結:
對git使用基本不熟悉,最常用的也就 git clone /笑哭,所以得慢慢熟悉起來,畢竟git是主流的版本管理工具,很有學習的價值,至少現在能用了,不必每次都開FTP軟件,還得選擇上傳的東西,一切都好舒服~~~~