同生活中的許多偉大事件一樣,Git 誕生于一個極富紛爭大舉創新的年代。Linux 內核開源項目有著為數眾廣的參與者。絕大多數的 Linux 內核維護工作都花在了提交補丁和保存歸檔的繁瑣事務上(1991-2002年間)。到 2002 年,整個項目組開始啟用分布式版本控制系統 BitKeeper 來管理和維護代碼。
GitHub是一個免費托管開源代碼的Git服務器,如果我們不想公開項目的源代碼,又不想付費使用,那么我們可以自己搭建一臺Git服務器。
git通過可變指針來實現對提交數據的歷史版本的控制,每當我們提交新的更新,當前分支(設為master)則指向最后一個提交更新A,而最后一個提交對象則存在一個指針指向前一次的提交更新Q。如果我們創建一個新的分支,child,它和master共同指向A,這時,如果我們向child分支提交更新B,我們會發現child指向B,而master依然指向A。無論我們在child分支進行了任何開發,只要回到master分支,就能恢復到更新A的數據狀態了。?
Git是一個開源的分布式版本控制系統,用于敏捷高效地處理任何或小或大的項目。 Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。 Git 與常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本庫的方式,不必服務器端軟件支持。
Git是一個開源的分布式版本控制軟件。在英式英語中,Git指一個愚笨或者不開心的人,恐怕與Git發明人——Linux教父LinusTorvalds當時的自嘲心理不無關系吧。2002年之前,Linux內核維護工作的絕大部分時間都浪費在提交補丁與保存歸檔等繁瑣事務上。啟用版本控制工具BitKeeper管理Linux內核成了當務之急。不過,BitKeeper畢竟是一款商業軟件,在經歷了3年免費使用之后,Linux社區不得不尋求它的替代品,以便繼續托管Linux內核源代碼。2005年,迫于無奈,LinusTorvalds自行開發了一套開源版本控制工具,并命名為Git。
?下載Ecliplse Git plugin并安裝 ?將自己本機證書公鑰上傳到github上自己注冊的賬號下,以便建立可靠的SSH(HTTPS)通信 ?在github上自己注冊的賬號下Fork某個項目,以后針對此項目進行提交和代碼修改工作 ?Eclipse里Clone自己Fork的項目,做代碼更新并提交 ?在github網頁上到自己的Fork項目下生成一個Pull Request請求,請求作者合并自己的代碼 ?Eclipse中同步(pull)官方項目代碼并Merge變化到自己的項目中
使用pull從遠程更新代碼時,會獲取到遠程指定分支的更新并合并到本地指定的分支,一般情況下不需要指定,默認把本地當前分支對應的遠程分支的更新獲取到并跟本地的當前分支合并。
在2002年以前,世界各地的志愿者把源代碼文件通過diff的方式發給Linus,然后由Linus本人通過手工方式合并代碼 因為Linus堅定地反對CVS和SVN,這些集中式的版本控制系統不但速度慢,而且必須聯網才能使用。有一些商用的版本控制系統,雖然比CVS、SVN好用,但那是付費的,和Linux的開源精神不符。 Linus一直痛恨的CVS及SVN都是集中式的版本控制系統,而Git是分布式版本控制系統 集中式版本控制器系統,版本庫是集中存放在中央服務器的,而干活的時候用的都是自己的電腦,,每次都需要從中央服務器上獲取數據,然后修改,最后再發到中央服務器上。 集中式版本控制系統最大的毛病就是必須互聯網才能工作, 如果在局域網內還好,寬帶勾搭,速度夠快,可如果在互聯網上,遇到網速較慢的話。可能需要較長的時間。
Git是目前世界上最先進的分布式版本控制管理系統。
第一步:安裝插件:git:http://download.eclipse.org/egit/updates-1.3第二步:將密匙文件放入,如圖所示:如圖加入密匙文件:yiping.wang注意,如果沒有這個.ssh文件的話,自己創建,創建如圖:第三步:使用gradle的步驟:先使用gitcheckout項目Next下去哈檢出項目如圖:第四步安裝:Gradle安裝地址為下載地址:http://services.gradle.org/distributions/gradle-1.5-all.zip安裝:解壓到自定義目錄(例如:C:\gradle-1.5)設置環境變量注意,這里的環境變量都配置到用戶名里,不要配置到系統里,否則掛的可能性很大GRADLE_HOME=C:\gradle-1.5Path+=%GRADLE_HOME%\bin打開命令行輸入:gradle,顯示以下類似信息即表示安裝成功命令:找到項目的地址,在docs命令下的改項目名下,編譯編譯命令:gradlecleaneclipseeclipse-Pprofile=test--------------------有針對性的編譯編譯命令:gradlecleaneclipseeclipse-----------------------全部編譯自動編譯:運行這個也可以的哈(以上選其一就ok了)后面的可以暫時不考慮哈打包命令:gradlecleanwar-Pprofile=product一些常用命令:-b指定build文件(默認為:build.gradle)-c指定settings文件(默認為:settings.gradle)-x排除指定任務(例如:-xtest)更多常用命令請輸入gradle-h/help查看Import項目ok有時候導入項目的時候會有一些bug出現,這個時候需要查看一下這個里面是否有依賴關系這個是依賴的項目名導入依賴的項目名就ok了打包命令:gradlecleanwar-Pprofile=product一些常用命令:-b指定build文件(默認為:build.gradle)-c指定settings文件(默認為:settings.gradle)-x排除指定任務(例如:-xtest)更多常用命令請輸入gradle-h/help查看
代碼提交規范:文件提交時要求必須提交注釋,注明相關修改信息,例如bug號、任務描述等。代碼變動及時提交,避免丟失本地修改后無法恢復。在提交之前要編譯代碼并修正錯誤。要保證新增加的文件同時被提交,否則只在你本地能正常工作,導致其它人不能編譯通過。提交之前要測試所改變的應用,測試改變后的效果是否達到預期的目的。多次檢查提交的內容。提交之前應先做SVN更新或與資源庫同步,注意到SVN關于沖突、錯誤的信息。資源庫同步會告訴你將要提交的內容與資源庫內容之間的差別,確認它們是不是你真正想要提交的。
在Windows環境中使用版本管理工具Git。Git是一個分布式的版本控制系統,最初由LinusTorvalds編寫,用作Linux內核代碼的管理。在推出后,Git在其它項目中也取得了很大成功,目前很多知名項目都使用了Git。?一、為什么選擇Git對于流行的軟件版本開源管理軟件,元老級的CVS、后來新秀的SVN,GIT的優勢又在哪里呢?1.傻瓜都會的初始化,gitinit,gitcommit-a,就完了。2.絕大部分操作在本地完成,只有最終完成的版本才需要向代碼管理服務器提交。3.每次提交都會對所有代碼創建一個全球唯一的commitid。4.branch管理容易多了,無論是建立新的,還是切換都一條命令完成。5.branch之間merge時,不僅代碼會merge在一起,checkin歷史也會保留。其他特點:1、更方便的Merge2、更方便的管理3、更健壯的系統分布式系統一般情況下總是比單服務端的系統要健壯,因為但服務端一旦服務器掛掉了整個系統就不能運行了。
教程:SVN的認識與使用1.SVN是什么。2.SVN的結構。3.SVN的作用。4.SVN的常用命令。5.更進一步。SVN的結構:服務器SVN_Server客戶端TortoiseSVNSVN的作用:為什么要用SVN1.個人使用:記錄代碼的進化歷程2.團隊使用:一份代碼,多人同時編寫記錄代碼版本,追溯修改監視每個人的工作SVN的常用命令
一、Git代碼狀態轉換圖1二、git的個人本地使用及操作1三、git的團隊開發及操作4四、git的分支管理5五、git忽略機制5Git代碼狀態轉換圖其中:未被Git跟蹤的狀態為unstage狀態已經被Git跟蹤的狀態為stage狀態,因此包括staging狀態和staged狀態untrackfiles是指尚未被git所管理的文件;changedbutnotupdated是指文件被git管理,并且發生了改變,但改動還沒被git管理;這兩種狀態,都可以看成是改動還沒被git管理的狀態,我們這里稱非stage狀態。changestobecommited是指進入stage狀態的文件,stage是commit和未管理之間的一個狀態,也有別名叫index狀態,也就是git已經管理了這些改動,但是還沒完成提交
其實這是一個本說叫做ProGit的一部分,我覺得講得很好,正好有人截取了一部分出來,我轉載了。書的地址在:。http://progit.org/book/很好的一本書,值得慢慢看,慢慢品位。項目的管理既然是相互協作,在貢獻代碼的同時,也免不了要維護管理自己的項目。像是怎么處理別人用format-patch生成的補丁,或是集成遠端倉庫上某個分支上的變化等等。但無論是管理代碼倉庫,還是幫忙審核收到的補丁,都需要同貢獻者約定某種長期可持續的工作方式。使用特性分支進行工作如果想要集成新的代碼進來,最好局限在特性分支上做。臨時的特性分支可以讓你隨意嘗試,進退自如。
SVN使用手冊SVN簡介SVN用于版本管控。您可以把SVN當成您的備份服務器,并且它可以幫您記住每次上傳這個服務器的檔案內容,并自動地賦予每次的變更一個版本。VisualSVN服務器端在服務器端需安裝VisualSVN軟件,界面如下:Repositories為服務器端程序版本庫,在VisualSVNServericon中,Repositories即為客戶端上傳檔案的地方,可以點擊右鍵,新建Repository,對不同工程建立不同版本庫,即上傳檔案的地方:在服務器端,可設置登錄用戶名及密碼,如下:在左邊樹形分支“User”點擊右鍵,點擊“新建”中的“User”.在“Username”中輸入用戶名,Password及Confirmpasswork中添加密碼;
遷出配置庫內容 1、在本地硬盤上建立一個文件夾“SVN”,并在文件夾“SVN”中建立一個子文件夾(子文件夾為空文件夾),子文件夾的名稱可以根據本公司配置庫路徑下的對應文件夾名稱進行定義。例如在SVN中建立一個test子文件夾。