之前公司的一個項目使用SVN來做的版本控制,服務器設在我這臺電腦上。然后是出于某些原因,我的電腦IP變了多次,每變一次就要重新綁定靜態ip,甚是煩人。同時SVN這種集中式的版本控制服務在我關閉了我的電腦之后,其他小伙伴們就無法同步了。
于是乎也懶得去研究SVN是否支持遠程云倉庫的方式來共享項目,轉投最近更火的Git。
Git是個好東西啊,可以直接remote到github的倉庫上,不就解決了鄙人的問題么?不過github畢竟是開源的(除非你愿意每個月花幾美刀去把倉庫轉私有),總不愿意自己公司的項目源代碼隨便被別人搜索到和下載吧。
于是乎便使用了一個最簡單的辦法——把版本控制服務(.git)托管到云服務器(網盤)上!
下面來嘮嗑下實現的步驟。建議您先把本文全部看完一遍再動手嘗試,防止邏輯混亂。
(一)首次將項目版本控制托管到云網盤上
⑴ 首先你要在百度網盤這里注冊個帳號:http://pan.baidu.com ,即使你有自己的百度帳號了,依舊建議你重新注冊一個公共的帳號,畢竟項目的小伙伴們要一同使用這個百度帳號來同步.git的。
注冊并激活之后,在網盤里新建一個文件夾用于存放今后的同步文件,如下所示,我新建了一個叫 git 的文件夾:
⑵ 接著到 http://pan.baidu.com/download#pan 下載同步盤。下載并安裝好百度同步盤后,用你注冊的百度帳號登錄,它會要你設置同步盤的位置,這里你隨便選擇一個文件夾,注意不是你項目的文件夾。如下圖,我在F盤新建了一個gitbak文件夾來作為同步文件夾:
⑷ 接著它會讓你選擇網盤上的需要同步的文件,我們勾選上之前新建的 git 文件夾,點擊“確定”按鈕即可:
自此你就完成了需要在百度網盤上的所有操作,我們打開 F:\gitbak 文件夾看看,會發現原本是空的文件夾下多了兩個文件:
其中.baoche.cache 文件夾是百度云盤的數據文件夾,無需理會,而git是網盤從云端同步到我們電腦來的文件夾。只要我們修改了git文件夾里的內容,百度云網盤就會第一時間更新到云端。
搞定了百度云盤,我們要接著搗弄Git了,我們續著上方步驟⑷接著講~
⑸ 沒安裝Git的朋友請先來 http://git-scm.com/download/ 下載并安裝Git,安裝方式很簡單,各種Next即可,只是殺毒軟件可能會詢問是否允許該軟件的操作,還是得留心下防止被阻止了。
裝好之后,我們打開項目文件所在的根目錄(比如我的項目根目錄是D:\VJProject ),右鍵并選擇“Git Init Here”,告知Git這個文件夾需要做版本控制,然后Git就會在該目錄下自動創建一個.git 文件夾用于放置版本控制信息:
⑹ 我們依舊在該項目根目錄里點擊右鍵,不過這次選擇的是“Git Gui”,它會打開Git圖形用戶操作界面,我們選擇“編輯”-“選項...”:
在彈出的窗口輸入左右兩處用戶名和郵箱,再點擊保存即可。此處填寫的用戶信息可以幫助我們以后在修改項目文件時,知道是誰做的修改:
保存后我們依次點擊“緩存改動”-“簽名”-“提交”,此舉是將改動全部保存到你本機上(項目根目錄的.git文件夾里):
⑺ 我們接著回到項目根目錄文件夾,依舊右鍵,選擇“Git Bash”進入命令行界面,輸入命令:
git clone --bare . F:/gitbak/git/VJ.git
該命令是將當前文件夾的.git庫拷貝到網盤同步文件夾F:/gitbak/git下,回車后如下所示:
此時我們進入網盤同步文件夾F:/gitbak/git,會發現克隆成功(多了一個VJ.git文件夾):
該文件夾將作為我們遠程提交的庫(雖然它其實是在我們本機上的,算不上遠程,但別忘了它會被同步到百度云網盤上),下一步我們將在Git中添加該.git文件夾為遠程倉庫。
⑻ 在項目根目錄右鍵選擇“git Gui”回到GUI主界面,我們點擊“遠端”-“Add”:
在彈出的窗口輸入本機百度云同步到的.git路徑信息:
(二)在其他電腦上共享云端的版本控制服務
通過上述的操作,我們把Git的服務變相托管到百度云網盤上,接著說說如何在其它電腦上共享這個服務。
⑴ 首先這臺電腦得安裝好Git,然后安裝好百度云網盤,用之前注冊的那個共用的百度帳號登錄,然后選擇要存放和同步云端文件的本機上的文件夾:
并選中網盤上已有的git文件夾:
點“確定”后百度同步盤就會把我們之前同步到云端的.git文件夾同步到當前電腦上:
⑵ 在要放置項目文件的地方新建一個文件夾(本例我們在G盤新建一個文件夾Project),然后在文件夾中點擊右鍵,選擇“Git Bash”:
在彈出來的命令行窗口輸入
git clone V:/gitSyn/git/VJ.git
然后回車。此舉會將項目文件都拷貝到我們剛剛新建的文件夾去:
你可以打開這個被克隆出來的文件夾,會發現項目文件都完好地拷貝在里面了:
⑶ 我們試著隨便修改項目中的某個文件,然后在項目根目錄點右鍵,選擇“Git Gui”打開用戶界面,然后依次選擇“緩存改動”-“簽名”-“提交”-“上傳”:
上傳的時候直接點“上傳”按鈕即可,它會自動幫你更新到本機的網盤同步文件夾(V:\gitSyn\git)去,無須像之前那樣再點“遠端-Add”來添加遠端倉庫了:
注意“提交”按鈕是把改動提交到本機(項目文件夾),而“上傳”才是把改動提交到遠端倉庫(百度網盤同步的文件夾)。你可以依照改動需求多次提交后再點上傳也無妨。
另一點要注意的是,在新電腦上同步好遠端git庫后,要在gui上點擊“編輯”-“選項”,然后輸入這臺電腦的操作者:
這樣才方便以后查看版本變動信息時知道分別是由哪些小伙伴做的更改。
(三)協同合作
在上述的倆大步驟都完成后,我們看下如何在Git協同工作。
在你日常修改好代碼后,請先點擊“遠端”-“從...獲取fetch”來更新遠端的庫,也許你的小伙伴們對這個項目也做了修改不是么:
這一步僅僅是將遠端庫下載到我們本地,但并沒有更新我們的本地庫,我們還需要再點擊“合并”-“本地合并”,在彈出的窗口選擇跟蹤分支來合并遠端和本地的庫:
這時候你就可以順利上傳了(如果遠端庫有變動,而你沒有先fetch遠端,Git不會允許你提交的,從而避免版本沖突)。
(四)其它
⑴ 消除gui上的中文亂碼
在查看改動信息的時候(比如點“版本庫-圖示master分支的歷史”),若代碼上含有中文,在gitui上都會顯示為亂碼。解決方法是打開Git的安裝目錄,然后找到 etc\gitconfig 文件,在里面修改或者加入下述代碼:
[gui] encoding = utf-8 [i18n] commitencoding = gbk [svn] pathnameencoding = gbk
再用gui查看中文內容就不會出現亂碼了。
⑵ 無關文件不做版本控制
有時候有些文件雖然存放在項目中,但卻無需做版本控制,比如我們上述例子中項目根目錄上的.suo文件,它是VS產生的用戶自定義配置記錄文件,僅對本機用戶有意義。
要讓Git不記錄這些文件的變動,我們可以在項目根目錄的.git文件夾中找到info/exclude文件:
用記事本打開它后在最后加上:
*.suo
保存即可,此舉告訴Git無需記錄任何.suo文件的改動。
當然有資源的公司和勤勞的你可以自行搭建一臺服務器來托管項目,特別是當項目數據非常重要和敏感的時候,以物理隔離的方式放在局域網內無非是最安全的作法。
如果你的項目文件不會超過1G且團隊成員小于5人,而且不怕超慢的連接速度的話,直接托管到Bitbucket上即可。
總而言之托管到網盤上也是一種新鮮好玩的做法,希望或多或少能給你一些小幫助。最后感謝煙波君提供的指導~共勉~
文章列表