使用Git代替FTP進行虛擬主機的代碼管理


為什么要使用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;

  1. 安裝git;
    官方下載地址:這有個問題,就是小水管實在是下載速度賊雞兒慢,常常就停了,最好的方式還是找度娘搜索 git+版本號,會有很多好人會下載后保存到國內雲盤中,這速度當然就飛起;官網的,我科學上網也速度賊慢,搞不懂了,有什么好方法還請大神教教;
    安裝時可以無腦下一步,沒什么影響,如果要看安裝教程可以參考:安裝git教程

  2. 有需要的話,選擇性安裝git圖形化工具,還有中文包很友好;
    git小烏龜,安裝也很簡單,可以選擇安裝路徑,其他的默認選項即可;

  3. 安裝git-ftp
    git-ftp 的 github 網址
    查看其中的 INSTALL.MD

    頂上一大段主要說的是下載帶sftp支持的curl,但實際上新版git裝完,git bash里的curl支持sftp;所以就可以直接在 git bash 中執行以下代碼安裝git-ftp

    curl 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 關閉;

  4. 創建git倉庫
    打開你要上傳至FTP的文件夾目錄,使用git bash 運行git init,在文件夾中生成一個隱藏的 .git文件夾,包含了該倉庫的一些配置,主要的git config

  5. 配置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   目錄根據自己結構定
    
  6. 提交同步代碼;
    接下來就是git的正常使用了,再修改了代碼后使用git同步,然后commit,接下來就是最重要的一步,push到FTP服務器上:git ftp push, ** 注意這里不是git-ftp **
    然后就可以去刷新你的頁面查看修改情況了;

  7. 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軟件,還得選擇上傳的東西,一切都好舒服~~~~

參考文章:

git-ftp 用git管理ftp空間
How to use git-ftp: 使用 git-ftp 管理你的 FTP


免責聲明!

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



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