Git学习教程(一):git简介
生活随笔
收集整理的這篇文章主要介紹了
Git学习教程(一):git简介
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?轉(zhuǎn)自:http://fsjoy.blog.51cto.com/318484/244397
第一課. git簡介 內(nèi)容:什么是git,為什么要使用git以及獲取和學(xué)習(xí)git的途徑。 歡迎來到github學(xué)習(xí)教程的第一課。本教程將通過一系列的實(shí)例來介紹如快速,輕松地使用Git。教程中會(huì)有很多屏幕截圖,希望這樣可以讓你更好的學(xué)習(xí)和理解。 本節(jié)簡要介紹git的概念和為什么應(yīng)該使用它? git是一個(gè)快速,開源,分布式的版本控制系統(tǒng)。因此,它在(開源)和(協(xié)作編程社區(qū))很快取代了svn。 版本控制系統(tǒng)? 首先,git是一個(gè)版本控制系統(tǒng),用來保留工程源代碼歷史狀態(tài)的命令行工具。類似于SVN,CVS或者Perforce等工具。 當(dāng)你需要得到以前的一個(gè)保存點(diǎn)時(shí),你可以利用它來追蹤項(xiàng)目中的文件,并且得到某些時(shí)間點(diǎn)提交的項(xiàng)目狀態(tài)。你可以和合作伙伴共享這些歷史狀態(tài),將他們的工作和你的工作進(jìn)行合并,可以對(duì)整個(gè)工程或某些文件跟歷史版本進(jìn)行比較或者恢復(fù)到早期的某個(gè)版本。 因?yàn)間it根本上說是一個(gè)命令行工具,所以本教程中的大部分示例都會(huì)用命令行的方式給出。教程中使用現(xiàn)行g(shù)it版本(1.6系列)編寫示例。如果使用早期版本的話,我們也建議您升級(jí)到1.6系列。當(dāng)然,現(xiàn)在已經(jīng)有很多git UI的工具,使得git變得更加簡單易用。 git的安裝: 下載地址?http://www.kernel.org/pub/software/scm/git/? 安裝過程: 1.$ tar xzvf git-1.6.5 2.$?cd git-1.6.5? 3.$?./config --prefix=/usr/local? 4.$?make 5.$?sudo make install 6.$?git --version 如果需要命令幫助的話,可以鍵入'-help'就會(huì)顯示出?操作手冊(cè)。你也可以鍵入'git help command'實(shí)現(xiàn)同樣的目的。 $ git log --help $ git help log 開源? git是一個(gè)開源項(xiàng)目,有很多年的歷史了,它的大部分內(nèi)容都是用C來寫的。 你可以得到整個(gè)項(xiàng)目的源代碼,加以分析和改進(jìn)。下載源程序的地址:git-scm.com/download。git許可證:GNU通用公共許可證(GNU General Public License) 離線,速度快 ?? git是完全的分布式處理,這意味著它可以離線工作。跟VCS工具例如Perforce或者SVN完全不同,Git的所有操作幾乎不需要網(wǎng)絡(luò)連接,包括歷史回顧,差異顯示和提交。 這也意味著Git比其他的VCS工具要快很多,因?yàn)槟承¬CS工具對(duì)網(wǎng)絡(luò)的依賴會(huì)導(dǎo)致時(shí)間上的延遲。下面來看看'log'命令分別運(yùn)行在git和SVN上的結(jié)果: [master]$ time git log > /dev/null real0m0.352s user0m0.300s sys0m0.034s? $ time svn log > /dev/null real0m3.709s user0m0.482s sys0m0.168s git僅用了0.3秒而SVN用了3.7秒。你會(huì)發(fā)現(xiàn)幾乎所有的命令都有這樣的時(shí)間差異。例如,添加知名的famfamfam出品的圖標(biāo)集并提交,因?yàn)槭褂胓it可以將【提交(commit)】和【上傳('push')網(wǎng)絡(luò)】這兩個(gè)步驟分開,其中【提交(commit)】git只用1/4秒,而SVN會(huì)用到45秒。 time 'git add icons; git commit -m "added icons"' real0m0.273s user0m0.032s sys0m0.008s time 'svn add icons; svn commit -m "added icons"' real?0m45.276s user0m15.997s sys0m5.503s 即使是再加上用git 提交(commit)之后再上傳(push)到網(wǎng)絡(luò)共享倉庫中的時(shí)間,也比SVN的耗時(shí)要少的多的多。 time git push real0m6.219s user0m0.023s sys0m0.011s 如果你僅僅是想提交然后繼續(xù)工作,你就會(huì)感覺到時(shí)間上的巨大差異--因?yàn)間it的工作流程跟以前的版本控制系統(tǒng)不大一樣。git的命令大部分都是即時(shí)的,不像以前,執(zhí)行'svn commit'命令之后,可以喝杯咖啡再回來繼續(xù)工作。 比svn更小 git比較節(jié)省空間。舉例來說,一個(gè)Django項(xiàng)目如果使用現(xiàn)行的源代碼控制系統(tǒng)(source control systems)來實(shí)現(xiàn)版本控制的話,git克隆(clone)是最小的。 $ du -d 1 -h 108M./django-bzr 44M./django-git 53M./django-hg 53M./django-svn 更神奇的是,雖然git克隆比SVN要小很多,但是git克隆包含整個(gè)項(xiàng)目的歷史版本---從第一次提交之后的每一個(gè)文件的每一次提交的版本都囊括了。然而,SVN只包含項(xiàng)目的最后一個(gè)版本。 快照,而不是變更集 跟其他的VCS工具不同,git是基于快照的。不再是考慮將提交點(diǎn)存儲(chǔ)成補(bǔ)丁文件,而是在你提交項(xiàng)目的時(shí)候?qū)?xiàng)目做一個(gè)簡單的快照。 提交的東西包含一些元數(shù)據(jù)(提交信息(message),作者,日期等等),一個(gè)提交點(diǎn)指向這次提交時(shí)項(xiàng)目的快照。 記住這個(gè)圖對(duì)于給定情形下使用Git是非常有幫助的。 如果要了解更深層次的Git存儲(chǔ)數(shù)據(jù)的只是,可以訪問Git for computer scientists 分支和合并 也許git最顯著的一個(gè)特點(diǎn)就是它的分枝模型了,因?yàn)樗淖兞碎_發(fā)者工作的基本模式。以前的VCS工具分枝的方法是對(duì)每一個(gè)分枝都放到一個(gè)獨(dú)立的目錄中。而git可以讓你在同一個(gè)工作目錄中切換(switch)到不同的分枝。創(chuàng)建和切換分枝幾乎是即時(shí)的(instant),而且并不是所有的分枝都需要上傳到git倉庫中去共享,對(duì)于某些你更愿意隱藏在本地的工作來說,git無疑提供了很大的便利。從這點(diǎn)上來說,git確是有其獨(dú)到之處。 摒棄了CVS只對(duì)項(xiàng)目開發(fā)主線創(chuàng)建分枝的做法,git開發(fā)者可以隨時(shí)創(chuàng)建,合并,刪除多個(gè)分枝。通常對(duì)于實(shí)現(xiàn)某個(gè)功能或者每個(gè)debug階段,都可以創(chuàng)建它的分枝,當(dāng)完成之后再將其進(jìn)行合并。這種模式可以讓開發(fā)者體驗(yàn)更加快速,簡便,安全的方式來開發(fā)項(xiàng)目。它鼓勵(lì)一種非線性的開發(fā)周期,它可以說是并行的多線程模式而不是多個(gè)步驟串行的模式。 安裝git
參見git community book中對(duì)于git安裝在不同操作系統(tǒng)中的說明。 資源
關(guān)于git的更多信息,可以參考git-scm.com
?
轉(zhuǎn)載于:https://www.cnblogs.com/yuandou/articles/2484857.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的Git学习教程(一):git简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nagios新添加服务有时显示,有时不显
- 下一篇: Boost 库中的实用工具类使用入门