日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

详解在visual studio中使用git版本系统(图文)

發布時間:2024/4/17 windows 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 详解在visual studio中使用git版本系统(图文) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一部分:?安裝?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?

【作用】

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)工作目錄,就是你在硬盤上操作的這些目錄和文件;

2)Git?版本庫,就是前面說的?.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?上右鍵點擊“刪除標簽”即可。

?

?

3)tag?推送

?

在向遠程服務器?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窗口

A?窗口

Base

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

B?窗口

Local

當前分支文件

C?窗口

Remote

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

?

Output

合并之后的文件

?

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

?

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

?

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

?

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

轉載于:https://www.cnblogs.com/majiang/articles/2588040.html

總結

以上是生活随笔為你收集整理的详解在visual studio中使用git版本系统(图文)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 耳光调教vk| 日韩欧美一区二区三区视频 | 91精品久久久久久综合五月天 | 九一亚洲精品 | 97香蕉久久夜色精品国产 | 九七人人爽 | 国产伦理在线观看 | 免费看黄网址 | 夜夜嗨老熟女av一区二区三区 | 久久精品一区二区三区不卡牛牛 | 一本之道久久 | 欧美一区二区在线播放 | 2020亚洲男人天堂 | 亚洲欧美激情另类 | 国产日韩三级 | 欧美夜夜操 | 亚洲av无码国产精品永久一区 | 日本韩国在线观看 | 性猛交ⅹxxx富婆视频 | 尤物在线视频观看 | 免费高清视频一区二区三区 | 久久国产精品首页 | 国产又大又粗又爽的毛片 | 久久久久久久久久99精品 | 人妻少妇偷人精品无码 | 国产在线拍揄自揄拍无码视频 | 久色99 | 成人啪啪| 亚洲另类xxxx | 免费在线网站 | 亚洲男人av | 成人黄色免费网址 | 91看片淫黄大片91桃色 | 射久久久 | 亚洲综合a | 国产美女福利视频 | 四虎4hu | 美女扒开尿口让男人捅爽 | av加勒比在线 | 高清国产在线 | 91刺激视频| 91肉色超薄丝袜脚交一区二区 | 欧美xxxx888| 国产精品自拍视频 | 日韩国产小视频 | 久久成人精品 | 3o一40一50一6o女人毛片 | 乱色熟女综合一区二区三区 | 在线播放av片 | 亚洲123区 | 伊人视频在线观看 | 天天色成人网 | 国产视频网 | 精品久久久久久久久久久久 | 午夜不卡av | 亚洲综合网在线 | 尤物视频在线观看国产 | 爱av导航| aa爱做片免费 | ts人妖另类精品视频系列 | 北岛玲一区二区 | 日本不卡视频一区 | 国产另类专区 | 国产一二三区在线视频 | 欧美激情精品久久 | 日韩欧美亚洲精品 | 日韩精品极品视频 | 亚洲a一区 | 丝袜诱惑一区 | 在线一区二区三区视频 | 夜夜噜噜噜 | 欧美五月激情 | 天天宗合 | 女人脱下裤子让男人桶 | 亚洲经典视频在线观看 | 在线免费观看视频网站 | 一区二区播放 | 嫩草一区 | 国内精品毛片 | 免费看成人aa片无码视频羞羞网 | 久久99久久98精品免观看软件 | 熟妇人妻av无码一区二区三区 | 高清不卡一区二区 | 久久久久久久久综合 | 国产伦精品一区二区三区视频1 | 亚洲成人免费在线 | 中文字幕亚洲一区二区三区五十路 | 福利网站在线观看 | 天天添天天操 | 国产精品一线二线三线 | 精品一区二区三区四区视频 | 99自拍偷拍 | 99久久影视 | 超碰97久久 | 国产激情二区 | wwwxxx日本免费 | 婷婷狠狠爱 | 日韩福利一区二区 | 欧美久久一区二区三区 |