iT邦幫忙

0

GIT 結合 PHP 應用

這陣子因應公司需求
學了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輔助軟體
(當然我也實現了跨平台操作)

解決此方法我想到有兩種

  1. 如何在我的程式碼做手腳,讓程式可以抓到本機端repo的GIT資訊,並回傳至伺服端顯示在前端畫面上
  2. 若是選擇開放下載,卻不想讓別人看到明碼,那就得想辦法封裝我的PHP與EXTJS程式碼

兩種方法...
我還在思考跟找資料...
想透過這平台尋求一些資訊...
或是得到不一樣的方法~~

看更多先前的討論...收起先前的討論...
gwip iT邦新手 5 級 ‧ 2017-01-17 15:31:37 檢舉
為什麼不 open source :-)
Boss有Boss的想法~呵呵~=_=
不然~
我覺得丟GITHUB也沒差~
fillano iT邦超人 1 級 ‧ 2017-01-17 16:59:47 檢舉
Javascript只能做混淆。

PHP可以考慮用付費的加密方案,不過,世界上沒有破不了的加密保護的產品。
https://www.sourcetreeapp.com/
https://www.sourcetreeapp.com/
weiclin iT邦高手 4 級 ‧ 2017-01-18 02:15:05 檢舉
這個跟 tortoisegit 之類的比起來有什麼優勢嗎..
差在我把常用功能精簡化
差在輔助軟體變成了web版

補充:
市面上的GIT輔助軟體
都是單機操作~
也就是必須下載/安裝

也因為如此..
單機軟體會適時地修改本機端的某些權限
或說是某些登入檔
所以不會有我現在WEB版的窘境....

如何突破這個窘境..
是我的一大考驗~

我是很想把程式丟到GITHUB~
讓大家一起完成...

但Boss有Boss的想法..他不准=_=
再補充:
我設計這套...
基本是為了公司同仁而作...
也是位公司新進員工而作...
算是入門輔助工具...
wwx iT邦好手 1 級 ‧ 2017-01-18 09:32:21 檢舉
我覺得BOSS是希望原PO別在這上面浪費時間,不好意思直說而已...
https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools
weiclin iT邦高手 4 級 ‧ 2017-01-18 15:30:43 檢舉
海綿寶寶..這串夭壽長可是好詳細啊 xD
weiclin iT邦高手 4 級 ‧ 2017-01-18 15:36:39 檢舉
我想, web 的東西你不額外安裝什麼東西的話, 你是沒辦法自由存取硬碟的資料的, 可是要另外安裝的話就又不符合你想達成的效果了。往另外一個方向想, 如果在 web server 提供 samba 之類的網路空間讓使用者從網頁操作, 然後由 samba 存取如何?
samba??
看到立馬查詢....
是跟網路芳鄰有關的東西??
不是很懂這樣的概念0.0
我的意思是...
在我架的SERVER中建立SAMBA
然後讓使用者透過我SERVER的網頁操作SAMBA
是這樣的意思嗎?
我想請教一點
如果現在有三個使用者(三台電腦)來使用您的php程式
會有幾個您所謂的「本機端的repo」?
一個或是三個?
weiclin iT邦高手 4 級 ‧ 2017-01-18 19:53:17 檢舉
就是網路芳鄰, 你在網頁建立的 repo 可以讓使用者在網路芳鄰裡面讀取檔案, 這樣子使用者也不用複製一份到本機, 直接用網路磁碟機去存取檔案
TO..海綿寶寶..
會有3個~
而且有可能3個repo(專案)都不一樣
也有可能兩個開發者共同開發同一個repo(分工開發不同功能)

TO..weiclin
這樣..是不是就演變成..
所有開發者都得湧進去那個芳鄰開發程式了??
weiclin iT邦高手 4 級 ‧ 2017-01-18 22:16:10 檢舉
是呀, 你可以每個使用者開一個空間彼此不干擾
至少公司內部這樣用應該是可行的
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
huangsb
iT邦好手 1 級 ‧ 2017-01-18 08:37:44

讓初學者不必安裝 GIT 就能做版控,是本末倒置了。

建議你至少該看看 Pro Git 這本書,而且要用過 GitHub

有需求是很好的,但至少要先找看看是否有現成的可用。如果已經有現成的軟體,你還是想自己寫,也應該先用過現成的軟體再自己寫,這樣,你獲得經驗會更多。

huangsb大您好..
您誤解我的內容了~^.^
基本上開發者的本機端還是得安裝基本的Git程式
這樣才能控制本機端的repo

我開發的這套是一個輔助軟體
我知道市面上有很多輔助軟體(工具)
我也用過2種工具~(totoisegit、smartgit)
這2個軟體也都很好用~

設計WEB版純屬在練習EXTJS+PHP+GIT時
意外產生的想法

設計WEB版的初衷是..
架個伺服器~把WEB版輔助工具放上去~
讓每個開發者可以進到我的網頁
透過我設計的UI介面
操作屬於他們本機端的repo資訊
讓新手很快的也可以上手
並初步認識GIT執行流程

只是..在我完成後才發現..
這套工具就跟市面上的軟體一樣
必須下載下來然後安裝...
只不過我的變成WEB版..=..=
並將其放置在自己本機端架的伺服器運作..

這樣就失去了「WEB」的意義了

這才發這篇問題..
詢問如何解決這樣的窘境..

huangsb iT邦好手 1 級 ‧ 2017-01-20 09:23:34 檢舉

你的目的既然是讓初學者更快速了解 GIT,何不將你的 WEB 程式改成一種教學軟體,並操作遠端(遠端 Web Server)的 Repo。

請注意,使用者最終還是得操作 Client 端的軟體。用 Web 寫 Client 軟體也是可以,只是效能不會太好。

0
海綿寶寶
iT邦大神 1 級 ‧ 2017-01-18 23:12:17

我畫了三個架構圖
你看看那一個最符合你的設計
或者你自己畫一下你心目中的架構圖
這樣繼續討論下去才比較有效率
http://ithelp.ithome.com.tw/upload/images/20170118/20001787kny5M4VL4i.jpg
http://ithelp.ithome.com.tw/upload/images/20170118/20001787z4DVb7QAVy.jpg
http://ithelp.ithome.com.tw/upload/images/20170118/20001787BWyDeJZRh9.jpg

看更多先前的回應...收起先前的回應...
weiclin iT邦高手 4 級 ‧ 2017-01-18 23:25:27 檢舉

我猜是 Type 3

大概已經自己解決
不需要上來問了...
/images/emoticon/emoticon10.gif

目前狀況是TYPE1~

但希望實現TYPE3~

很抱歉~
不是我不上來回應...
是我昨天一整天都連不上IT邦幫忙= =

TYPE1缺點是...
我的PHP必須共享給別人~
但..原初衷是TYPE3...
完成後我才發現GIT的機制只能實現TYPE1
所以才上來找方法~看能否實現TYPE3~

嗯...
如果是 Type 3 的話
我個人認為是辦不到的
原因不是php也不是git
而是這違反了「Browser/Internet的基本安全設計原則」
試想
如果裝在你公司的Web server(PHP)
可以透過Browser
存取Browser所在電腦的硬碟
那還不天下大亂?

看看別的高手有沒有解法
我是沒辦法了...

0
Miles
iT邦新手 2 級 ‧ 2017-01-19 18:34:46

個人小小想法:

網頁本身的特色是讓任何人都能方便地存取裡面的資源,所以 GitHub / GitLab 等服務,會這麼紅不是沒有道理。

如果要設定成本機才能存取網頁資源的話,將會綁手綁腳。尤其是這個網頁功能是某個 GUI 軟體可以輕鬆達成的時候....

建議:開源做個 PitHub 就解決了XD

這樣等於我PHP網頁給人欣賞去了= =

Miles iT邦新手 2 級 ‧ 2017-01-20 12:38:13 檢舉

這沒什麼不好呀,欣賞就會產生回饋,回饋會讓網頁往好的方向修正。正面一點想,這將會精進設計與程式的功力。

而且更重要的,寫這個工具網頁的目的,不就是要給人使用的嗎?

這純屬個人想法,參考參考。如果真的要開源到 GitHub 也請您說一聲,我一定會去 star

0
kgame
iT邦新手 4 級 ‧ 2017-01-23 02:19:58

從根本上讓PHP控制本地repo就是錯誤的選擇了

建議把PHP的部分丟掉用nodeJS重寫git指令控制

然後用electron將你的EXTJS網頁和nodeJS寫的git指令控制包成exe檔

就可以單獨在本地端執行了

我要發表回答

立即登入回答