成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解在Visual Studio中使用git版本系統(tǒng)(圖文)

開(kāi)發(fā) 后端
很多人已經(jīng)在使用git(或正在轉(zhuǎn)移到git上),在github.com上,非常不錯(cuò)。但相關(guān)教程似乎不多,所以趁著我自己的開(kāi)源項(xiàng)目源碼托管,寫(xiě)了一篇,算是拋磚引玉吧。

這篇教程的預(yù)期,是希望沒(méi)有任何版本使用基礎(chǔ)的新手也可以掌握,所以細(xì)節(jié)較多,不當(dāng)之處,歡迎指正。

第一部分: 安裝 git 開(kāi)發(fā)工具

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

但圖形化工具也有自己的優(yōu)點(diǎn),就是直觀。下面推薦的組合方案是:

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

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

1)安裝 cygwin 命令行工具

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

安裝過(guò)程中需要安裝的軟件:

◆ git-completion: 提供 Git 命令自動(dòng)補(bǔ)齊功能。安裝該軟件包會(huì)自動(dòng)安裝依賴(lài)的 bash-completion 軟件包。

◆ openssh:SSH 客戶(hù)端,提供 Git 訪(fǎng)問(wèn) ssh 協(xié)議的版本庫(kù)。

◆ vim:是 Git 缺省的編輯器。

2)安裝 git extensions

【作用】

git extensions 必須依賴(lài)于命令行工具,所以第二個(gè)安裝。

它安裝之后不但可以使用,也自動(dòng)在vs中加上插件,可以在vs中非常直觀的、方便的操作。

【安裝方法】

下載網(wǎng)址:http://code.google.com/p/gitextensions/downloads/list 選擇GitExtensions226SetupComplete.msi那個(gè)帶Complete字樣的版本,它里面集成了 KDiff3 工具。

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

git extensions 安裝之后自帶一個(gè)很全面的教程。

【配置】

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

 

 

第一個(gè)是:“用戶(hù)運(yùn)行g(shù)it的命令”

第二個(gè)是:全局配置文件,請(qǐng)點(diǎn)擊“Change HOME”按鈕,將目錄改為 cygwin 的目錄。

另外,git extensions 會(huì)把 cygwin 默認(rèn)的編輯器 vi 改成它自己的,你可以在“全局設(shè)置”中改回來(lái)。

補(bǔ)充1:git extensions 的配置文件放在注冊(cè)表中,如果卸載,這些配置仍然保留,你可以再次安裝發(fā)生問(wèn)題,可以檢查注冊(cè)表中相關(guān)配置項(xiàng),是否有問(wèn)題。

補(bǔ)充2:在安裝 git extensions 過(guò)程中,我們勾選了 msysGit,現(xiàn)在安裝完畢,其實(shí)你可以卸載 msysGit了,不過(guò)也可以保留,因?yàn)?msysGit 安裝目錄下自帶 git 的所有命令的幫助文檔。

3)安裝 Git Source Control Provider

【作用】

Git Source Control Provider 是 vs 的一個(gè)擴(kuò)展插件,但必須依賴(lài)于 git extensions,所以第三個(gè)安裝,它的作用是,可以顯示文件狀態(tài)、顯示文件歷史等,讓 vs 中文件操作更加方便。

項(xiàng)目網(wǎng)址:http://gitscc.codeplex.com/

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

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

【安裝方法】

在vs菜單中點(diǎn)擊“工具”的“擴(kuò)展管理器”

 

 

然后在線(xiàn)搜索git,出現(xiàn)第一個(gè)結(jié)果就是 Git Source Control Provider,然后點(diǎn)擊“下載”

 

 

然后點(diǎn)擊vs菜單的“工具”的“選項(xiàng)”,展開(kāi)左側(cè)的“Source Control”,在右側(cè)的“當(dāng)前源代碼管理插件”中選擇“Git Source Control Provider”,然后點(diǎn)擊“確定”

 

 

啟用 Git Source Control Provider 之后,所有文件顯示出狀態(tài)圖標(biāo)。你可以在文件上右鍵進(jìn)入 Git 菜單進(jìn)行操作。

 

 

下面通過(guò)創(chuàng)建一個(gè)全新的測(cè)試項(xiàng)目,來(lái)演示如何在 vs 中可視化操作 git 版本庫(kù)。如果完成了基本操作,你可以參與到實(shí)際的github項(xiàng)目,比如"我記錄開(kāi)發(fā)框架"和“我記錄網(wǎng)站綜合系統(tǒng)(集成了“SNS/門(mén)戶(hù)CMS/論壇/博客/相冊(cè)/微博/wiki”等應(yīng)用程序的互聯(lián)網(wǎng)產(chǎn)品)”已經(jīng)托管到github,網(wǎng)址是 https://github.com/wojilu/wojilu 。

#p#

二、創(chuàng)建版本庫(kù)

用 vs 新建一個(gè)項(xiàng)目,然后點(diǎn)擊“Git”菜單中的“Initialize new repository”

 

 

彈出窗口,讓你選擇需要納入git版本管理的目錄——

 

 

初始化之后,在項(xiàng)目目錄下,出現(xiàn)一個(gè) .git 的隱藏文件夾,這個(gè)文件夾就是git版本庫(kù)。

 

 

和.git同處一個(gè)目錄的所有文件,現(xiàn)在就納入了這個(gè)版本庫(kù)的范圍之內(nèi)。

現(xiàn)在你在這個(gè)目錄下,可以執(zhí)行 git 命令了。

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

 

 

不過(guò)我們這一節(jié)主要講如何在 vs 中可視化操作 git,暫時(shí)不涉及命令行管理。

三、將文件提交到版本庫(kù)

只有將項(xiàng)目中的文件納入版本庫(kù),我們才能享受到版本管理系統(tǒng)帶來(lái)的好處,比如瀏覽歷史版本,切換分支等……

1)首先,請(qǐng)關(guān)閉vs,然后重新打開(kāi)。如果不重新打開(kāi),插件 Git Source Control 不能監(jiān)控文件狀態(tài)。

重新打開(kāi)之后,文件顯示狀態(tài)符號(hào):前面顯示“+”加號(hào),它表示這些文件的狀態(tài)是“尚未納入版本庫(kù)”,需要你添加。

 

 

你可以點(diǎn)擊“Git”菜單中的“Commit”進(jìn)行提交

 

 

出現(xiàn)如下提交窗口

 

 

我們看到,這里需要提交的文件很多,但其實(shí),很多文件是 vs 自動(dòng)生成的臨時(shí)文件,和項(xiàng)目?jī)?nèi)容沒(méi)有關(guān)系,不應(yīng)該納入版本管理,比如 ***.suo 文件,這時(shí)候,我們需要將這些文件設(shè)置為“需要忽略的文件”,讓 git 不理會(huì)他們。

2)設(shè)置忽略文件

請(qǐng)關(guān)閉上面的 commit 窗口,點(diǎn)擊 vs 菜單 “Git”中的命令“Edit .gitignore”

 

 

出現(xiàn)忽略文件的編輯窗口,這個(gè)窗口左側(cè)的內(nèi)容區(qū)目前是空白,沒(méi)有內(nèi)容。

 

image009

 

不過(guò)右側(cè)列舉了一些常見(jiàn)的需要忽略的文件(默認(rèn)),請(qǐng)點(diǎn)擊右下側(cè)的“添加默認(rèn)的忽略項(xiàng)”按鈕,將需要忽略的內(nèi)容添加到左側(cè)內(nèi)容區(qū),然后點(diǎn)擊“保存”。

然后打開(kāi)文件夾,你會(huì)看到項(xiàng)目中出現(xiàn)了一個(gè)名叫 .gitignore 的文件,它里面的內(nèi)容就是你剛才保存的內(nèi)容。

 

 

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

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

 

 

這時(shí)候如果直接點(diǎn)擊“提交”命令,則出現(xiàn)如下提示窗口,意思是“還沒(méi)有文件在暫存區(qū)中。需要暫存并馬上提交所有文件嗎?”

 

 

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

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

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

a)暫存區(qū)(stage),其實(shí)相當(dāng)于在提交之前的一個(gè)緩沖區(qū);

b)版本庫(kù)內(nèi)容區(qū),里面存放了文件的歷史內(nèi)容、各個(gè)分支等……

總之,將一個(gè)文件提交到版本庫(kù)其實(shí)就是這樣的流程——

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

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

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

第一步:git add fileName

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

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

 

 

你可以選定一個(gè)文件,點(diǎn)擊途中左側(cè)的箭頭,將此文件加入暫存區(qū);也可以點(diǎn)擊右側(cè)雙箭頭,將所有文件加入暫存區(qū)。

這個(gè)點(diǎn)擊雙箭頭的命令,其實(shí)和如下 Add Files 命令(項(xiàng)目中右鍵進(jìn)入Git菜單)是相同的,都是將所有文件加入暫存區(qū)。特別說(shuō)明:如果文件名或目錄名是中文,請(qǐng)使用 Add Files 命令代替此處的stage操作。

 

 

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

將文件全部加入暫存區(qū)之后,如下圖所示,請(qǐng)?jiān)谟蚁麓翱谥休斎胩峤徽f(shuō)明信息,請(qǐng)務(wù)必認(rèn)真填寫(xiě),不要留空。每一次提交都要有明確的說(shuō)明,這是以后版本瀏覽、管理的關(guān)鍵線(xiàn)索。

 

 

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

 

 

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

git add .

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

兩種方式各有優(yōu)缺點(diǎn)。

這時(shí)候我們?cè)倏错?xiàng)目中文件的狀態(tài),文件前面的“+加號(hào)”變成了“鎖”,表示文件已經(jīng)成功納入了版本庫(kù)。

 

 

#p#

四、瀏覽版本庫(kù)

1)準(zhǔn)備工作,我們?cè)诎姹局刑砑有薷?個(gè)文件,然后提交2次。

2)如何查看歷次提交記錄?請(qǐng)打開(kāi)“Git”菜單中的“Browse”命令

 

 

出現(xiàn)提交歷史窗口——

 

 

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

 

 

如果在項(xiàng)目中右鍵,然后點(diǎn)擊右鍵菜單的“Git - History”

 

 

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

 

 

#p#

五、同步到遠(yuǎn)程服務(wù)器

因?yàn)?git 是分布式版本系統(tǒng),每個(gè)人在自己本機(jī)上,都有一個(gè) git 版本庫(kù)的拷貝,為了和遠(yuǎn)程其他版本庫(kù)同步,需要進(jìn)行同步操作。

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

下面,我們將項(xiàng)目推送到 github 我們注冊(cè)的項(xiàng)目上去。

1)我們點(diǎn)擊 如下圖的“Push”命令

 

 

出現(xiàn)推送窗口,接下來(lái)點(diǎn)擊“管理遠(yuǎn)程”,進(jìn)行 github 項(xiàng)目的添加操作——

 

 

出現(xiàn)遠(yuǎn)程管理窗口,請(qǐng)依次填寫(xiě)

“名稱(chēng)”、

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

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

“加載SSH密鑰”,

然后測(cè)試連接,最后“保存”

 

 

系統(tǒng)開(kāi)始抓取遠(yuǎn)程信息,成功之后,請(qǐng)切換到“默認(rèn)拉取行為(獲取以及合并)”,在右側(cè)“遠(yuǎn)程檔案庫(kù)”下拉框中選擇“origin”,“默認(rèn)合并”中填寫(xiě)“master”,最后點(diǎn)擊“保存”

 

 

2)請(qǐng)關(guān)閉“遠(yuǎn)程檔案庫(kù)”窗口,再關(guān)閉“推送”窗口并重新打開(kāi)(即重啟“推送”窗口),會(huì)發(fā)現(xiàn)剛才設(shè)置的 gihub 遠(yuǎn)程庫(kù) origin 已經(jīng)自動(dòng)填充了——

 

 

點(diǎn)擊“推送”命令,開(kāi)始推送,根據(jù)網(wǎng)速不同,可能需要幾秒或幾分鐘時(shí)間,請(qǐng)耐心等待,最后會(huì)提示推送成功。

此時(shí)訪(fǎng)問(wèn) github 網(wǎng)站,會(huì)看到你新推送的項(xiàng)目?jī)?nèi)容。

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

#p#

六、文件管理

【刪除文件】

在 vs 中,因?yàn)橛胁寮闹С郑钥梢灾苯觿h除;刪除之后,需要提交一下。提交的時(shí)候 git extensions 會(huì)將刪除操作同步到版本庫(kù)中。

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

 

 

說(shuō)明:如果是在命令行中,請(qǐng)不要直接使用 rm操作,而是使用 git rm 命令。

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

點(diǎn)擊 "Git" 菜單中的 "Browse" 命令,打開(kāi)提交歷史窗口,請(qǐng)點(diǎn)擊文件尚未被刪除的某個(gè)提交,比如下面的 "add class1",然后切換下面的窗口到“文件樹(shù)”中

 

 

在文件數(shù)中,可以查看當(dāng)前歷史中所有文件。

另外,還可以在項(xiàng)目中右鍵菜單中點(diǎn)擊“Git - History”命令,進(jìn)入相應(yīng)的“Show Files”窗口中查看文件數(shù)。

【如何恢復(fù)被刪除的文件?】

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

【移動(dòng)文件】

1)在 vs 中直接移動(dòng)即可。

2)如果被移動(dòng)的文件是中文名,git extensions 對(duì)話(huà)框會(huì)有bug,需要使用命令行工具。請(qǐng)打開(kāi)命令行,進(jìn)入到 .git 文件所在的目錄,輸入命令——

git add -u .

這個(gè)命令,比普通的 "git add ." 多了一個(gè)參數(shù) -u,表示將各種變動(dòng)也添加進(jìn)來(lái)

【如何恢復(fù)剛做的修改?】

在提交窗口中,選中文件,點(diǎn)擊“重置選中的文件”,或者右下角的“復(fù)位更改”

 

 

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

 

 

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

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

 

 

新增一個(gè)提交,并點(diǎn)擊上面的“更改最后一次提交”,新的提交信息將覆蓋上一次提交。

警告:只有當(dāng)上一次提交尚未push到遠(yuǎn)程版本庫(kù)的時(shí)候,才可以使用本方法;否則,對(duì)上一次提交的修改會(huì)引起混亂。

#p#

八、分支管理

在 git 中,分支非常簡(jiǎn)單易用,建議經(jīng)常創(chuàng)建分支。

比如,你有一個(gè)實(shí)驗(yàn)性的想法,可以創(chuàng)建一個(gè)分支去測(cè)試,完全不影響正式的代碼。

再比如,要開(kāi)發(fā)一個(gè)新功能,那就創(chuàng)建一個(gè)分支專(zhuān)門(mén)提交這個(gè)功能相關(guān)的代碼,如果開(kāi)發(fā)完畢,將此分支合并到主分支即可。這種為特定而新開(kāi)的分支,我們叫“特性分支(Feature Branch)”。它的一個(gè)重要優(yōu)點(diǎn)是:如果新功能不能如期完工,也不會(huì)影響主分支的發(fā)布。

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

1)創(chuàng)建分支

 

 

填寫(xiě)“分支名稱(chēng)”,然后點(diǎn)擊“創(chuàng)建分支”

 

 

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

 

 

2)切換分支

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

點(diǎn)擊Git菜單中的“Checkout branch”命令,

 

 

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

 

 

3)合并分支

點(diǎn)擊下圖的“Merge”命令

 

 

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

 

 

合并之后,在你的當(dāng)前分支中,就會(huì)出現(xiàn)目標(biāo)分支的內(nèi)容。

4)刪除分支

因?yàn)樵趃it中創(chuàng)建分支是很容易、很頻繁的事情,所以,當(dāng)某個(gè)分支沒(méi)有用處的時(shí)候,也就經(jīng)常需要?jiǎng)h除。注意,如果分支還沒(méi)有合并,那么刪除分支會(huì)導(dǎo)致此分支下的所有commit丟失,所以在刪除之前請(qǐng)先合并分支。

方法:點(diǎn)擊“Git”菜單中的“Browse”,進(jìn)入git日志列表,在有分支標(biāo)記的上面右鍵點(diǎn)擊“刪除分支”命令:

 

 

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

將一個(gè)分支在master上衍合,會(huì)執(zhí)行如下步驟:

• 此分支中所有commit都會(huì)stash臨時(shí)緩存;

• 然后刪除此分支;

•在master分支之上重新創(chuàng)建此分支;

• 在新創(chuàng)建的分支上提交剛才緩存的所有commit;

在衍合過(guò)程中,有可能發(fā)生合并沖突,這個(gè)往往需要你手工逐個(gè)解決。

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

#p#

九、tag 管理

在 git 中,tag(標(biāo)簽)經(jīng)常用來(lái)標(biāo)記版本,比如給某個(gè)提交打上 "v1.0" 的tag,以表示這是1.0版本。

1)創(chuàng)建tag

通過(guò)“Git”菜單的“Browse”命令,進(jìn)入提交(commit)列表窗口,你可以在任意提交(commit)上面右鍵點(diǎn)擊“創(chuàng)建新標(biāo)簽”命令,比如輸入“v1.0”

 

 

創(chuàng)建的時(shí)候建議一定要勾選“創(chuàng)建帶注解的標(biāo)記”,如下圖所示,填寫(xiě)“消息”。因?yàn)槟愦蛏系膖ag,別人未必能理解它的意思和目的,有注解的 tag 更加方便協(xié)同工作。另外,tag 名稱(chēng)中不允許有空格。

 

 

2)刪除 tag

tag 不可以修改和移動(dòng),所以如果要修改或移動(dòng),請(qǐng)先刪除,然后添加一個(gè)新的 tag。

刪除方法:在 tag 上右鍵點(diǎn)擊“刪除標(biāo)簽”即可。

 

 

3)tag 推送

在向遠(yuǎn)程服務(wù)器 push 推送數(shù)據(jù)的時(shí)候,默認(rèn)狀態(tài)下,tag 不會(huì)被推送,你需要進(jìn)入“推送標(biāo)簽”(如下圖所示),然后勾選“強(qiáng)制推送”,才能將 tag 推送上去。

 

 

注意:tag 一旦推送到遠(yuǎn)程服務(wù)器,就不要再改動(dòng),因?yàn)橛锌赡軐?dǎo)致一個(gè)相同的 tag 在不同用戶(hù)那里含義不同,造成混亂。

4)在 github 中提供下載

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

 

 

下載之后,用vs2010打開(kāi)即可調(diào)試運(yùn)行。

 

 

#p#

十、沖突合并

在分支合并的時(shí)候,往往發(fā)生內(nèi)容沖突,大多數(shù)情況下 git 都會(huì)幫你自動(dòng)合并,省掉很多麻煩。

但有些時(shí)候,git 無(wú)法處理,需要你手工解決。

一般有三種類(lèi)型的沖突,需要你手工處理:

一個(gè)被刪除,一個(gè)被修改會(huì)提示你:選擇修改的文件,還是刪除的文件?

一個(gè)被刪除,一個(gè)新創(chuàng)建會(huì)提示你:選擇創(chuàng)建的文件,還是刪除的文件?

在兩個(gè)分支中分別作了不同的修改會(huì)提示你:使用 merge 工具手工修改沖突

下面簡(jiǎn)單介紹一下如何使用合并工具 kdiff3。

比如在分支合并中,如果有沖突,會(huì)出現(xiàn)彈窗提醒

 

 

點(diǎn)擊“是”,出現(xiàn)如下合并工具窗口,請(qǐng)選擇右上角的“Open in kdiff3”

 

 

kdiff3在啟動(dòng)的時(shí)候,也會(huì)出現(xiàn)一個(gè)彈窗

 

 

請(qǐng)點(diǎn)擊“OK”,然后出現(xiàn)kdiff3的主窗口

 

 

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

A 窗口Base需要合并的兩個(gè)文件的最近的共同祖先版本

B 窗口Local當(dāng)前分支文件

C 窗口Remote需要合并的另外分支的文件

Output合并之后的文件

合并方法:在Output文件中的沖突區(qū)域,右鍵選擇A/B/C的相應(yīng)內(nèi)容。

 

 

選擇之后,如果不滿(mǎn)意,還可以在沖突區(qū)域直接編輯輸入

 

 

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

補(bǔ)充說(shuō)明:需要注意的是,有些沖突是邏輯上的沖突,是隱含的,工具無(wú)法自動(dòng)偵測(cè)出來(lái)。比如你修改一個(gè)函數(shù)的返回值,使得他的含義變化;而別人是使用這個(gè)函數(shù)的,那么,當(dāng)你修改之后,別人的程序也許無(wú)法正常運(yùn)行,但工具并不能發(fā)現(xiàn)這種邏輯上的沖突。這個(gè)當(dāng)然不是合并工具的問(wèn)題,它需要的是程序設(shè)計(jì)者思維的謹(jǐn)慎周密。

原文:http://www.cnblogs.com/wojilu/archive/2011/11/16/2250721.html

【編輯推薦】

  1. Visual Studio 2010自動(dòng)化整理代碼PK Vim
  2. 從開(kāi)發(fā)人員角度看Windows 8及Visual Studio 11
  3. 體驗(yàn)Visual Studio 11安裝ASP.NET MVC 4
  4. Visual Studio 11預(yù)覽版安裝手冊(cè)
  5. 淺談Visual Studio 2010調(diào)試后臺(tái)服務(wù)
責(zé)任編輯:陳貽新 來(lái)源: 擲雞蛋者博客
相關(guān)推薦

2011-12-20 21:15:41

App store

2010-02-06 16:21:21

Ubuntu內(nèi)核

2010-08-06 13:11:44

Jolicloud 1

2012-02-13 14:22:22

MonoTouchiOS應(yīng)用Visual Stud

2012-02-13 14:10:11

MonoTouchiOS應(yīng)用Visual Stud

2011-03-28 09:23:31

Visual Stud

2010-12-22 21:47:42

bada 2.0bada三星

2013-12-25 16:03:39

GitGit 命令

2025-04-16 10:12:13

2010-04-16 14:08:46

Visual Stud

2021-08-28 06:19:00

微軟TeamsiOS

2009-12-09 13:04:40

2011-06-29 09:42:12

Visual Stud Qt Opensource

2009-07-02 10:07:24

C# 4.0的動(dòng)態(tài)類(lèi)型Visual Stud

2010-01-13 17:54:48

CentOS 5安裝

2009-12-16 16:57:03

Visual Stud

2009-12-03 16:21:50

Visual Stud

2010-12-16 10:00:20

QtVisual Stud

2012-04-23 10:30:38

Hadoop

2011-06-30 10:50:39

Qt OpenCV
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲成人中文字幕 | 国产色网| 天堂久 | 一级在线观看 | 亚洲一在线 | 国产精品久久久久久久久久 | 在线免费国产 | 一级片免费在线观看 | 成人精品视频在线 | 欧美亚洲国产一区二区三区 | av网站免费在线观看 | 免费一区二区三区 | 成人在线一级片 | 99久久精品免费 | 国产小视频在线观看 | 日日干天天干 | 国产精品18hdxxxⅹ在线 | av中文字幕在线 | 欧美激情久久久 | 国产精品久久久久久久久久 | 亚洲欧美日韩在线不卡 | 精品综合久久 | 国产日韩欧美一区二区在线播放 | 久久久久久亚洲精品 | 正在播放国产精品 | 久久精品久久久久久 | 一区二区三区在线观看视频 | 91国产精品在线 | 国产午夜一级 | 国产午夜精品一区二区 | 欧美a级成人淫片免费看 | 丁香婷婷久久久综合精品国产 | 色综合99| 999在线精品 | 男女啪啪高潮无遮挡免费动态 | 国产二区在线播放 | 日韩中文字幕在线观看 | 日韩精品一区二区三区在线观看 | 久久91| 一区在线免费视频 | 国产97碰免费视频 |