git 學習筆記
1、Git 和 SVN的差別是什麼。
三個差別:【存儲】、【使用】、【管理】
- 存儲:
- Git是對修改的内容,進行key/value的方式進行存儲的。
- Svn是對源檔案進行存儲。
- so:同樣用svn 和 git 管理一樣的修改,一樣的版本,svn倉庫會大很多。
- 使用:
- Git送出需要 add commit push , 而Svn隻需要 commit。
- 管理:
- Git是分布式,SVN是遠端集中式管理。
- Svn送出代碼,必須遠端Svn倉庫開啟着,才可以使用,如果沒有開,什麼都做不了。而Git用戶端就會有一個本地倉庫,可以進行送出,對比,切換分支,連接配接遠端,可以推送。
2、Git的底層原理
- Git是對修改記錄進行 key/value的儲存,是以我們要回退到什麼時候的版本,或者回退哪一次的修改,可以快速的通過gitKey的方式,快速的 切換版本。
- 這個做法,很好的解決了記錄切換的問題以及效率,那麼他是如何做到找到檔案夾呢?
- git是通過樹圖來管理檔案的
- Git對于檔案檔案管理,是采用樹模型進行建立的,每一個分支,又有一棵樹,這裡有4個屬性,tree,blob,commit,tag。
- blob ,表示檔案節點,git add 時候建立的
- tree ,表示樹節點,git commit時候建立的,還有他下面的位元組點,分别用blob 和 tree 表示。
- commit,會帶上tree的id,是以可以快速的知道,擷取哪個樹的資訊。
3、Git的通信協定
支援四種:【local】,【ssh】,【http】,【git】
- local: 本地檔案傳輸模式,小打小鬧可以。
- ssh: 安全性高了,但是不适合做一些管理。
- http :git本身不支援http,需要借助apche,nginx等web伺服器,做轉發。
- git : 是git 自己本身的服務
4、一些資料:
官方用戶端:
httpsd://git-scm.com/downloads其它用戶端:
https://tortoisegit.org/download/徹底了解git:
https://github.com/pysnow530/git-from-the-inside-out/blob/master/README.md