這陣子因應公司需求
學了EXTJS、PHP以及GIT版本控制
學得也算有聲有色
然後...
我開始突發奇想...
以往控制GIT都是以命令提示字元控制(LINUX為終端機)
學習過程中~發現要注意的部分很多~
於是我開始想著用PHP(後端)與EXTJS(前端)設計一個網頁來操作GIT
並將GIT的所有操作過程簡易化~
讓新手也能夠上手~
這玩意兒~
我花了一個月完成了~
只不過有個致命缺點~(老闆說的)
GIT的概念是將遠端的倉儲(以下簡稱repo)
複製一份到開發者本機端進行開發
等到開發到一定成果或是階段時
在將本機端的repo推送(push)到遠端repo更新
問題來了~~~~
因為要操作的所有GIT功能都是在本機端
所以我的UI設計
所讀取的repo路徑
當然就是本機端的repo
也因為如此...
我若是想推廣我這包GIT操作網頁
我這包網頁是必要公開給所有開發者
當然..他們也就能看到明碼
原本的初衷是...
我會開一個伺服器~
讓開發者連到我的伺服器上這個GIT操作網頁
透過這個操作網頁上的功能~
讓開發者們不用再去下載/安裝GIT輔助軟體
就可以自由地PUSH/PULL遠端repo 或是 查看自己本機端repo的狀態或樹狀圖
算是一個網頁式GIT輔助軟體
(當然我也實現了跨平台操作)
解決此方法我想到有兩種
兩種方法...
我還在思考跟找資料...
想透過這平台尋求一些資訊...
或是得到不一樣的方法~~
huangsb大您好..
您誤解我的內容了~^.^
基本上開發者的本機端還是得安裝基本的Git程式
這樣才能控制本機端的repo
我開發的這套是一個輔助軟體
我知道市面上有很多輔助軟體(工具)
我也用過2種工具~(totoisegit、smartgit)
這2個軟體也都很好用~
設計WEB版純屬在練習EXTJS+PHP+GIT時
意外產生的想法
設計WEB版的初衷是..
架個伺服器~把WEB版輔助工具放上去~
讓每個開發者可以進到我的網頁
透過我設計的UI介面
操作屬於他們本機端的repo資訊
讓新手很快的也可以上手
並初步認識GIT執行流程
只是..在我完成後才發現..
這套工具就跟市面上的軟體一樣
必須下載下來然後安裝...
只不過我的變成WEB版..=..=
並將其放置在自己本機端架的伺服器運作..
這樣就失去了「WEB」的意義了
這才發這篇問題..
詢問如何解決這樣的窘境..
你的目的既然是讓初學者更快速了解 GIT,何不將你的 WEB 程式改成一種教學軟體,並操作遠端(遠端 Web Server)的 Repo。
請注意,使用者最終還是得操作 Client 端的軟體。用 Web 寫 Client 軟體也是可以,只是效能不會太好。
我畫了三個架構圖
你看看那一個最符合你的設計
或者你自己畫一下你心目中的架構圖
這樣繼續討論下去才比較有效率
目前狀況是TYPE1~
但希望實現TYPE3~
很抱歉~
不是我不上來回應...
是我昨天一整天都連不上IT邦幫忙= =
TYPE1缺點是...
我的PHP必須共享給別人~
但..原初衷是TYPE3...
完成後我才發現GIT的機制只能實現TYPE1
所以才上來找方法~看能否實現TYPE3~
嗯...
如果是 Type 3 的話
我個人認為是辦不到的
原因不是php也不是git
而是這違反了「Browser/Internet的基本安全設計原則」
試想
如果裝在你公司的Web server(PHP)
可以透過Browser
存取Browser所在電腦的硬碟
那還不天下大亂?
看看別的高手有沒有解法
我是沒辦法了...
個人小小想法:
網頁本身的特色是讓任何人都能方便地存取裡面的資源,所以 GitHub / GitLab 等服務,會這麼紅不是沒有道理。
如果要設定成本機才能存取網頁資源的話,將會綁手綁腳。尤其是這個網頁功能是某個 GUI 軟體可以輕鬆達成的時候....
建議:開源做個 PitHub 就解決了XD
從根本上讓PHP控制本地repo就是錯誤的選擇了
建議把PHP的部分丟掉用nodeJS重寫git指令控制
然後用electron將你的EXTJS網頁和nodeJS寫的git指令控制包成exe檔
就可以單獨在本地端執行了