詳解在visual studio中使用git版本系統(圖文)

來源:互聯網
上載者:User

很多人已經在使用git(或正在轉移到git上),在github.com上,也看到不少國內同學的開源項目,非常不錯。但相關教程似乎不多,所以趁著我自己的開源項目源碼託管(https://github.com/wojilu/wojilu),寫了一篇,算是拋磚引玉吧。

這篇教程的預期,是希望沒有任何版本使用基礎的新手也可以掌握,所以細節較多,不當之處,歡迎指正。

 

第一部分: 安裝 git 開發工具

  

如果要使用 git 進行版本管理,其實使用 git 命令列工具就完全足夠了,圖形化工具(無論是 git extentions ,還是TortoiseGit),都只不過是命令列的封裝。就功能而言,他們能做的,命令列全部可以做到;但命令列能做的,他們不一定可以做到。命令列更加原生、本色,跨越平台,以一當十。建議熟悉 git 命令列工具。 

但圖形化工具也有自己的優點,就是直觀。下面推薦的組合方案是: 

Git 命令列(cygwin) + Git Extensions + Git Source Control Provider 

——這個組合可以徹底解決中文檔案問題(包括中文檔案名稱、目錄名,以及在 github 中的正常顯示)。

 

1)安裝 cygwin 命令列工具 

安裝教程見 http://gotgit.github.com/gotgithub/10-appendix/030-install-on-windows-cygwin.html

安裝過程中需要安裝的軟體:

git-completion: 提供 Git 命令自動補齊功能。安裝該軟體包會自動安裝依賴的 bash-completion 軟體包。

openssh:SSH 用戶端,提供 Git 訪問 ssh 協議的版本庫。

vim:是 Git 預設的編輯器。

 

2)安裝 git extensions 

【作用】

git extensions 必須依賴於命令列工具,所以第二個安裝。

它安裝之後不但可以使用,也自動在vs中加上外掛程式,可以在vs中非常直觀的、方便的操作。

 

【安裝方法】

下載網址:http://code.google.com/p/gitextensions/downloads/list 選擇GitExtensions226SetupComplete.msi那個帶Complete字樣的版本,它裡面整合了 KDiff3 工具。

下載之後,雙擊安裝,一路next,中間記得勾選 msysGit 和 KDiff3。

git extensions 安裝之後內建一個很全面的教程。

 

【配置】

我們知道,目前git命令列工具有兩種,一種是 cygwin 下命令列,一種是 msysGit 命令列,git extensions 可以配置使用哪一種命令列工具,如下圖,我們選擇使用 cygwin,而不是 msysGit 

 

第一個是:“使用者運行git的命令”

第二個是:全域設定檔,請點擊“Change HOME”按鈕,將目錄改為 cygwin 的目錄。 

另外,git extensions 會把 cygwin 預設的編輯器 vi 改成它自己的,你可以在“全域設定”中改回來。 

補充1:git extensions 的設定檔放在註冊表中,如果卸載,這些配置仍然保留,你可以再次安裝發生問題,可以檢查註冊表中相關配置項,是否有問題。 

補充2:在安裝 git extensions 過程中,我們勾選了 msysGit,現在安裝完畢,其實你可以卸載 msysGit了,不過也可以保留,因為 msysGit 安裝目錄下內建 git 的所有命令的協助文檔。 

 

3)安裝 Git Source Control Provider 

【作用】

          摘自:http://blog.csdn.net/wojilu/article/details/6976230

           Git Source Control Provider 是 vs 的一個擴充外掛程式,但必須依賴於 git extensions,所以第三個安裝,它的作用是,可以顯示檔案狀態、顯示檔案曆史等,讓 vs 中檔案操作更加方便。

項目網址:http://gitscc.codeplex.com/

源碼:https://github.com/yysun/Git-Source-Control-Provider

視頻教程:www.youtube.com/watch?v=efS0kKvfi6k

 

 

【安裝方法】

在vs菜單中點擊“工具”的“擴充管理器”

  

然後線上搜尋git,出現第一個結果就是 Git Source Control Provider,然後點擊“下載”

 

 

然後點擊vs菜單的“工具”的“選項”,展開左側的“Source Control”,在右側的“當前原始程式碼控制外掛程式”中選擇“Git Source Control Provider”,然後點擊“確定”

 

 

啟用 Git Source Control Provider 之後,所有檔案顯示出狀態表徵圖。你可以在檔案上右鍵進入 Git 菜單進行操作。

  

 

下面通過建立一個全新的測試專案,來示範如何在 vs 中可視化操作 git 版本庫。如果完成了基本操作,你可以參與到實際的github項目,比如"我記錄開發架構"和“我記錄網站綜合系統(整合了“SNS/門戶CMS/論壇/部落格/相簿/微博/wiki”等應用程式的互連網產品)”已經託管到github,網址是 https://github.com/wojilu/wojilu 。

一、建立版本庫

 

用 vs 建立一個項目,然後點擊“Git”菜單中的“Initialize new repository”

 

 

快顯視窗,讓你選擇需要納入git版本管理的目錄——

 

 

初始化之後,在項目目錄下,出現一個 .git 的隱藏檔案夾,這個檔案夾就是git版本庫。

和.git同處一個目錄的所有檔案,現在就納入了這個版本庫的範圍之內。

現在你在這個目錄下,可以執行 git 命令了。

 

比如下面就是在 git 命令列視窗中直接操作 git 命令,使用命令列,可以完成所有的 git 版本管理操作。

 

不過我們這一節主要講如何在 vs 中可視化操作 git,暫時不涉及命令列管理。

 

 

二、將檔案提交到版本庫

 

只有將項目中的檔案納入版本庫,我們才能享受到版本管理系統帶來的好處,比如瀏覽曆史版本,切換分支等……

 

1)首先,請關閉vs,然後重新開啟。如果不重新開啟,外掛程式 Git Source Control 不能監控檔案狀態。

重新開啟之後,檔案顯示狀態符號:前面顯示“+”加號,它表示這些檔案的狀態是“尚未納入版本庫”,需要你添加。

 

你可以點擊“Git”菜單中的“Commit”進行提交

 

出現如下提交視窗

 

我們看到,這裡需要提交的檔案很多,但其實,很多檔案是 vs 自動產生的臨時檔案,和項目內容沒有關係,不應該納入版本管理,比如 ***.suo 檔案,這時候,我們需要將這些檔案設定為“需要忽略的檔案”,讓 git 不理會他們。

 

2)設定忽略檔案

 

請關閉上面的 commit 視窗,點擊 vs 菜單 “Git”中的命令“Edit .gitignore”

 

 

出現忽略檔案的編輯視窗,這個視窗左側的內容區目前是空白,沒有內容。

 

 

不過右側列舉了一些常見的需要忽略的檔案(預設),請點擊右下側的“添加預設的忽略項”按鈕,將需要忽略的內容添加到左側內容區,然後點擊“儲存”。

 

然後開啟檔案夾,你會看到項目中出現了一個名叫 .gitignore 的檔案,它裡面的內容就是你剛才儲存的內容。

 

 

3)提交步驟a (加入暫存區)

 

再次點擊菜單“Git”中的“Commit”提交命令,現在提交視窗中顯示需要提交的檔案大大減少,比如 ***.suo 檔案就已經被 git 忽略掉了。

 

 

這時候如果直接點擊“提交”命令,則出現如下提示視窗,意思是“還沒有檔案在暫存區中。需要暫存並馬上提交所有檔案嗎。”

 

 

這句話什麼意思呢。這裡涉及到 Git 的一個暫存區( stage )的概念,在 Git 中有三個儲存檔案的地區:

1)工作目錄,就是你在硬碟上操作的這些目錄和檔案;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.