<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

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

      很多人已經在使用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 軟件包。

      opensshSSH 客戶端,提供 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 改成它自己的,你可以在“全局設置”中改回來。 

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

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

       

      3)安裝 Git Source Control Provider 

      【作用】

      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

       

       

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

       

      image009

       

      不過右側列舉了一些常見的需要忽略的文件(默認),請點擊右下側的“添加默認的忽略項”按鈕,將需要忽略的內容添加到左側內容區,然后點擊“保存”。

       

      然后打開文件夾,你會看到項目中出現了一個名叫 .gitignore 的文件,它里面的內容就是你剛才保存的內容。

       

       

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

       

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

       

       

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

       

       

      這句話什么意思呢?這里涉及到 Git 的一個暫存區( stage )的概念,在 Git 中有三個保存文件的區域:

      1)工作目錄,就是你在硬盤上操作的這些目錄和文件;

      2Git 版本庫,就是前面說的 .git 隱藏文件夾。版本庫里面又分成“暫存區”和真正的版本庫。

      a)暫存區(stage),其實相當于在提交之前的一個緩沖區;

      b)版本庫內容區,里面存放了文件的歷史內容、各個分支等……

       

      總之,將一個文件提交到版本庫其實就是這樣的流程——

       

      1.工作目錄 -->  (  2.暫存區  --> 3.版本庫 )

       

      為什么 Git 需要一個暫存區呢?這是為了方便 commit 提交過程中的反悔撤銷等精細的操作。一旦加入暫存區(stage),即加入了 .git 中,但尚未提交到版本庫,有了這個緩存,提交操作過程變得更加靈活。

       

      總之,你的提交過程分成兩步:先 add 加入 暫存區(stage),然后提交(commit)。如果用命令行表示,就是

      第一步:git add fileName

      第二步:git commit -m "提交描述文字"

       

      這兩個步驟對應到上圖,就是左側的兩個窗口,左側上部是工作目錄,左側下部是暫存區,兩個窗口之間用“暫存(stage)”命令分隔,如下圖。

      你可以選定一個文件,點擊途中左側的箭頭,將此文件加入暫存區;也可以點擊右側雙箭頭,將所有文件加入暫存區。

       

      這個點擊雙箭頭的命令,其實和如下 Add Files 命令(項目中右鍵進入Git菜單)是相同的,都是將所有文件加入暫存區。特別說明:如果文件名或目錄名是中文,請使用 Add Files 命令代替此處的stage操作。

       

       

       

      4)提交步驟b (真正提交commit)

       

      將文件全部加入暫存區之后,如下圖所示,請在右下窗口中輸入提交說明信息,請務必認真填寫,不要留空。每一次提交都要有明確的說明,這是以后版本瀏覽、管理的關鍵線索。

       

       

      填寫“提交信息(m)”之后,就可以點擊“提交”按鈕了,之后會彈出如下窗口,表示提交成功。

       

      上面的操作非常直觀,但如果用git命令行,其實只要簡單的兩行命令即可:

      git add .

      git commit -m "我的第一次提交"

       

      兩種方式各有優缺點。

       

      這時候我們再看項目中文件的狀態,文件前面的“+加號”變成了“鎖”,表示文件已經成功納入了版本庫。

       

       

      三、瀏覽版本庫

       

      1)準備工作,我們在版本中添加修改2個文件,然后提交2次。

       

      2)如何查看歷次提交記錄?請打開“Git”菜單中的“Browse”命令

       

      出現提交歷史窗口——

       

      窗口中顯示了總共三次提交,在提交歷史中右鍵,可以看到相關的操作,比如分支、標簽(tag)等……

       

       

      如果在項目中右鍵,然后點擊右鍵菜單的“Git - History

       

      還可以圖形化的查看提交歷史

       

       

       

      四、同步到遠程服務器

       

      因為 git 是分布式版本系統,每個人在自己本機上,都有一個 git 版本庫的拷貝,為了和遠程其他版本庫同步,需要進行同步操作。

       

      同步操作分成兩種,一種是 pull 拉取,一種是 push 推送。

       

      下面,我們將項目推送到 github 我們注冊的項目上去。

       

      1)我們點擊 如下圖的“Push”命令

       

       

      出現推送窗口,接下來點擊“管理遠程”,進行 github 項目的添加操作——

       

       

      出現遠程管理窗口,請依次填寫

      “名稱”、

      Url地址”(一般是 git@github.com:yourName/yourProject.git 格式)

      瀏覽“私鑰文件”(你用 PuTTY 生成的 .ppk 文件)

      “加載SSH密鑰”,

       

      然后測試連接,最后“保存”

       

      系統開始抓取遠程信息,成功之后,請切換到“默認拉取行為(獲取以及合并)”,在右側“遠程檔案庫”下拉框中選擇“origin”,“默認合并”中填寫“master”,最后點擊“保存”

       

       

       

      2)請關閉“遠程檔案庫”窗口,再關閉“推送”窗口并重新打開(即重啟“推送”窗口),會發現剛才設置的 gihub 遠程庫 origin 已經自動填充了——

       

       

      點擊“推送”命令,開始推送,根據網速不同,可能需要幾秒或幾分鐘時間,請耐心等待,最后會提示推送成功。

       

      此時訪問 github 網站,會看到你新推送的項目內容。

      《vs中git基本操作圖解1》在這里:http://www.wojilu.com/Forum1/Topic/2237 本文是第二部分。

      ------------------------------------


      五、文件管理


      【刪除文件】

       

       vs 中,因為有插件的支持,所以可以直接刪除;刪除之后,需要提交一下。提交的時候 git extensions 會將刪除操作同步到版本庫中。

       

      如下圖,文件“xxxFile.cs”被刪除之后,在 commit 窗口中顯示刪除標記“—”:

       

      說明:如果是在命令行中,請不要直接使用 rm操作,而是使用 git rm 命令。

       

      【如何查看被刪除的文件?】

       

      點擊 "Git" 菜單中的 "Browse" 命令,打開提交歷史窗口,請點擊文件尚未被刪除的某個提交,比如下面的 "add class1",然后切換下面的窗口到“文件樹”中

       

      在文件數中,可以查看當前歷史中所有文件。

       

      另外,還可以在項目中右鍵菜單中點擊“Git - History”命令,進入相應的“Show Files”窗口中查看文件數。

       

      【如何恢復被刪除的文件?】

       

      在上圖中,找到需要恢復的文件,然后右鍵“另存為”,保存到項目中即可。

       

      【移動文件】

       

      1)在 vs 中直接移動即可。

       

      2)如果被移動的文件是中文名,git extensions 對話框會有bug,需要使用命令行工具。請打開命令行,進入到 .git 文件所在的目錄,輸入命令——

      git add -u .

      這個命令,比普通的 "git add ." 多了一個參數 -u,表示將各種變動也添加進來

       

      【如何恢復剛做的修改?】

       

      在提交窗口中,選中文件,點擊“重置選中的文件”,或者右下角的“復位更改”

       

      或者在右鍵中 "Git" ->Undo File Changes

       

      【修改最后一次提交信息】

       

      對剛才的提交后悔了?想更改最后一次提交?

      新增一個提交,并點擊上面的“更改最后一次提交”,新的提交信息將覆蓋上一次提交。

       

      警告:只有當上一次提交尚未push到遠程版本庫的時候,才可以使用本方法;否則,對上一次提交的修改會引起混亂。

       

      七、分支管理

       

       git 中,分支非常簡單易用,建議經常創建分支。

       

      比如,你有一個實驗性的想法,可以創建一個分支去測試,完全不影響正式的代碼。

       

      再比如,要開發一個新功能,那就創建一個分支專門提交這個功能相關的代碼,如果開發完畢,將此分支合并到主分支即可。這種為特定而新開的分支,我們叫“特性分支(Feature Branch)”。它的一個重要優點是:如果新功能不能如期完工,也不會影響主分支的發布。

       

      另外在bug修復等方面,git 的分支功能也非常方便易用。可以說,分支功能是 git 最棒的功能之一。

       

      1)創建分支

       

       

       

      填寫“分支名稱”,然后點擊“創建分支”

       

      創建之后,解決方案管理器(Solution Explore 后面顯示當前所在的分支,比如下圖顯示 branch1)

       

      2)切換分支

       

      注意:在切換之前,記得先提交,以保證尚未提交的文件已經保存到版本庫中。

      點擊Git菜單中的“Checkout branch”命令,

       

       

      然后選擇需要簽出的分支:

       

       

      3)合并分支

       

      點擊下圖的“Merge”命令

      然后選擇需要合并的分支:

      合并之后,在你的當前分支中,就會出現目標分支的內容。

       

      4)刪除分支

       

      因為在git中創建分支是很容易、很頻繁的事情,所以,當某個分支沒有用處的時候,也就經常需要刪除。注意,如果分支還沒有合并,那么刪除分支會導致此分支下的所有commit丟失,所以在刪除之前請先合并分支。

       

      方法:點擊“Git”菜單中的“Browse”,進入git日志列表,在有分支標記的上面右鍵點擊“刪除分支”命令:

       

       

      5)分支“衍合”(rebase,又叫“變基”)

       

      將一個分支在master上衍合,會執行如下步驟:

      此分支中所有commit都會stash臨時緩存;

      然后刪除此分支;

      ?master分支之上重新創建此分支;

      在新創建的分支上提交剛才緩存的所有commit

      在衍合過程中,有可能發生合并沖突,這個往往需要你手工逐個解決。

       

      衍合(變基)做法:先進入需要被衍合的分支,然后點擊"rebase"命令,在彈窗中 rebase on 后面選擇分支,比如在分支 branch1 中選擇master分支,表示將branch1衍合到master( rebase on master)

       

       

      八、tag 管理

       

       git 中,tag(標簽)經常用來標記版本,比如給某個提交打上 "v1.0" tag,以表示這是1.0版本。

       

      1)創建tag

       

      通過“Git”菜單的“Browse”命令,進入提交(commit)列表窗口,你可以在任意提交(commit)上面右鍵點擊“創建新標簽”命令,比如輸入“v1.0

       

      創建的時候建議一定要勾選“創建帶注解的標記”,如下圖所示,填寫“消息”。因為你打上的tag,別人未必能理解它的意思和目的,有注解的 tag 更加方便協同工作。另外,tag 名稱中不允許有空格。

       

      2)刪除 tag

       

      tag 不可以修改和移動,所以如果要修改或移動,請先刪除,然后添加一個新的 tag

      刪除方法:在 tag 上右鍵點擊“刪除標簽”即可。

       

       

      3tag 推送

       

      在向遠程服務器 push 推送數據的時候,默認狀態下,tag 不會被推送,你需要進入“推送標簽”(如下圖所示),然后勾選“強制推送”,才能將 tag 推送上去。

      注意:tag 一旦推送到遠程服務器,就不要再改動,因為有可能導致一個相同的 tag 在不同用戶那里含義不同,造成混亂。

       

      4)在 github 中提供下載

       

      Github 非常體貼,只要是打上 tag 的,都自動打包,提供下載。如下圖,我給 wojilu 托管之后的第一個commit打上了 "v1.8.5"  tag,在 github 中,其他人就可以直接下載這個版本了。

       

       

      下載之后,用vs2010打開即可調試運行。

       

       

      九、沖突合并

       

      在分支合并的時候,往往發生內容沖突,大多數情況下 git 都會幫你自動合并,省掉很多麻煩。

      但有些時候,git 無法處理,需要你手工解決。

       

      一般有三種類型的沖突,需要你手工處理:

      一個被刪除,一個被修改

      會提示你:選擇修改的文件,還是刪除的文件?

      一個被刪除,一個新創建

      會提示你:選擇創建的文件,還是刪除的文件?

      在兩個分支中分別作了不同的修改

      會提示你:使用 merge 工具手工修改沖突

       

      下面簡單介紹一下如何使用合并工具 kdiff3

       

      比如在分支合并中,如果有沖突,會出現彈窗提醒

       

      點擊“是”,出現如下合并工具窗口,請選擇右上角的“Open in kdiff3

       

      kdiff3在啟動的時候,也會出現一個彈窗

       

      請點擊“OK”,然后出現kdiff3的主窗口

       

      屏幕上有四個窗口,上面三個,依次是 base/local/remote窗口,下面是output窗口

      窗口

      Base

      需要合并的兩個文件的最近的共同祖先版本

      窗口

      Local

      當前分支文件

      窗口

      Remote

      需要合并的另外分支的文件

       

      Output

      合并之后的文件

       

      合并方法:在Output文件中的沖突區域,右鍵選擇A/B/C的相應內容。

       

      選擇之后,如果不滿意,還可以在沖突區域直接編輯輸入

       

      修改之后,保存并退出即可。

       

      補充說明:需要注意的是,有些沖突是邏輯上的沖突,是隱含的,工具無法自動偵測出來。比如你修改一個函數的返回值,使得他的含義變化;而別人是使用這個函數的,那么,當你修改之后,別人的程序也許無法正常運行,但工具并不能發現這種邏輯上的沖突。這個當然不是合并工具的問題,它需要的是程序設計者思維的謹慎周密。

      posted @ 2011-11-16 09:58  擲雞蛋者  閱讀(17587)  評論(41)    收藏  舉報
      主站蜘蛛池模板: 国产熟睡乱子伦视频在线播放| 麻豆成人传媒一区二区| 中文成人在线| 亚洲狼人久久伊人久久伊| 日本一区二区三区18岁| 午夜成人精品福利网站在线观看| 国产精品午夜福利合集| 国产亚洲精品aaaa片app| 久久无码专区国产精品| 柏乡县| 视频一区二区三区四区五区| 亚洲欧美日韩愉拍自拍美利坚| 国产成人精品无人区一区| 美女黄网站人色视频免费国产| 色综合色综合色综合频道| 国产午夜福利精品久久不卡| 国产成人亚洲欧美二区综合| 国产乱码精品一区二区上| 永久免费精品性爱网站| 国产伦码精品一区二区| 熟妇人妻中文a∨无码| 中文字幕亚洲综合久久2020| 亚洲av成人在线一区| 国产国产成人精品久久蜜| 国内精品久久人妻无码不卡| 免费无码成人AV片在线| 免费看黄色亚洲一区久久| 免费无码一区二区三区蜜桃大| 色爱综合激情五月激情| 老熟妇国产一区二区三区 | 国产精品久久国产三级国不卡顿| 中文字幕色偷偷人妻久久| 国产成人精品无码播放| 日日碰狠狠添天天爽五月婷| 亚洲区激情区无码区日韩区| 久久综合久中文字幕青草| 曲麻莱县| 4虎四虎永久在线精品免费| 人妻影音先锋啪啪AV资源| 人妻精品动漫H无码中字| 亚洲高潮喷水无码AV电影|