同生活中的許多偉大事件一樣,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。
使用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查看
在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、更健壯的系統分布式系統一般情況下總是比單服務端的系統要健壯,因為但服務端一旦服務器掛掉了整個系統就不能運行了。
一、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生成的補丁,或是集成遠端倉庫上某個分支上的變化等等。但無論是管理代碼倉庫,還是幫忙審核收到的補丁,都需要同貢獻者約定某種長期可持續的工作方式。使用特性分支進行工作如果想要集成新的代碼進來,最好局限在特性分支上做。臨時的特性分支可以讓你隨意嘗試,進退自如。
GitLab是利用 Ruby on Rails 一個開源的版本管理系統,實現一個自托管的Git項目倉庫,可通過Web界面進行訪問公開的或者私人項目。它擁有與Github類似的功能,能夠瀏覽源代碼,管理缺陷和注釋。可以管理團隊對倉庫的訪問,它非常易于瀏覽提交過的版本并提供一個文件歷史庫。團隊成員可以利用內置的簡單聊天程序(Wall)進行交流。它還提供一個代碼片段收集功能可以輕松實現代碼復用,便于日后有需要的時候進行查找。
The goal of this book is to get you started with version control and Git as quickly and easily as possible. Unlike other books about this topic, this one doesn't require a master's degree in computer science to read it. It's aimed at beginners of programming, at designers, at project managers... It tries not to require too much prior knowledge on the technical side. It tries to go slowly. That being said, Git and version control in general remain highly technical topics. I can't spare you all of this, but I'll try to explain workflows & backgrounds thoroughly and provide a lot of real-world examples.
一、Eclipse上安裝GIT插件EGit Eclipse的版本eclipse-java-helios-SR2-win32.zip(在Eclipse3.3版本找不到對應的EGit插件,無法安裝)
一:Git是什么?????Git是目前世界上最先進的分布式版本控制系統。二:SVN與Git的最主要的區別????SVN是集中式版本控制系統,版本庫是集中放在中央服務器的,而干活的時候,用的都是自己的電腦,所以首先要從中央服務器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服務器。集中式版本控制系統是必須聯網才能工作,如果在局域網還可以,帶寬夠大,速度夠快,如果在互聯網下,如果網速慢的話,就納悶了。???Git是分布式版本控制系統,那么它就沒有中央服務器的,每個人的電腦就是一個完整的版本庫,這樣,工作的時候就不需要聯網了,因為版本都是在自己的電腦上。
此頁圖解git中的最常用命令。如果你稍微理解git的工作原理,這篇文章能夠讓你理解的更透徹。如果你想知道這個站點怎樣產生,請前往。