git是現在最先進的分布式版本控制系統(distributed version control system)。所謂版本控制指的是對於檔案內容變化的一系列的記錄,從而我們可以查閱特定版本的修訂情況。舉個栗子比如wiki百科的詞條都是經過多次revision的,每個修改的版本都有記錄,對這些版本進行管理就是版本控制的基本思路。
最初的版本控制是在本地執行的,採用簡單的資料庫來記錄檔案每次更新的差異。但是本地的版本控制不能適應不同系統的開發者之間的協作,因此產生了集中化的版本控制(cvcs,第乙個c指的是centralized)。這樣的系統有乙個集中管理的伺服器,所有的協同工作的客戶端都要連線到這個伺服器,取得檔案並且修改後提交更新。但是這樣也有個很明顯的問題,就是如果**伺服器gg了,那麼大家都無法工作。而且會丟失所有的歷史版本,只留著每個客戶端各自保留的快照。因此分布式版本控制系統(dvcs,d指的是distributed)誕生了,git就是這樣的系統,這類系統的工作原理是這樣的:客戶端不只是跟之前集中式一樣提取乙個快照,而是整個地把版本倉庫備份到本機,這樣即使有一台機器發生故障,都可以用其它的將**倉庫恢復出來。
三種控制方式的示意圖如下:
這是最原始的本地的版本控制:
這是集中式版本控制(cvcs):
這是分布式版本控制(dvcs):
git 和其他版本控制系統的不同在於:git直接記錄檔案系統的一組快照,而不是把要儲存的資訊看做一組基本檔案和每個檔案每次修改的差異的積累。另外,git上幾乎所有的操作都是本地執行,因此減少了時間開支。另外,git用 sha-1 計算出檔案內容的雜湊值來作為檔案的索引,因此可以保證檔案的完整性。一般只做向資料庫中新增資料。
git中的檔案有三種狀態,相應的也分為三個區域。三種狀態:
已提交表示資料已經安全的儲存在本地資料庫中。已修改表示修改了檔案,但還沒儲存到資料庫中。已暫存表示對乙個已修改檔案的當前版本做了標記,使之包含在下次提交的快照中。
三個工作區域:
git倉庫就是儲存專案的元資料和物件資料庫的地方,最重要。暫存區域是存放下次將要被提交的檔案列表資訊的地方。工作目錄就是當前使用或修改的,從專案中獨立出來的某個版本的內容。
git 的基本流程如下:首先,在工作目錄下修改檔案內容,然後用暫存的命令(add)將修改過的檔案快照放入暫存區域,然後利用提交命令(commit)將暫存區域的待提交的內容提交到git倉庫。
reference:
to be continued
2018/02/06 周二 21:23
有皺紋的地方只表示微笑曾在那兒呆過。 —— 馬克吐溫
深度學習 0 相關概念
卷積核 3 3 3 前兩個 3是卷積核大小,後乙個是通道數,指定步長後滑動一次生成 乙個 x,y,1 假設有n個卷積核,這樣就生成 x,y,n 縮小大小,厚度增加 引數 n個卷積核 n 3 3 n 偏執 對於32 32 3的 28 28 64 卷積 28 28 64 14 14 64 池化 通常也有...
資料探勘學習之路 1 相關概念
在同濟讀研期間,無意間選擇了資料倉儲和資料探勘作為研究方向,從此走上了漫漫bi之路。研究生畢業以後,抵制了外企的 因為無法做bi相關的專業工作 加入了上海電力下屬的it公司,從事電力營銷資料倉儲的建設,真正將知識轉化成生產力,自己也親身經歷如何實施大型資料倉儲,此後跳槽另一家民企,接觸了移動經營分析...
MySQL資料庫一 相關概念
資料庫 database 是按照資料結構來組織 儲存和管理資料的倉庫。每個資料庫都有乙個或多個不同的 api 用於建立,訪問,管理,搜尋和複製所儲存的資料。我們也可以將資料儲存在檔案中,但是在檔案中讀寫資料速度相對較慢。所以,現在我們使用關係型資料庫管理系統 rdbms 來儲存和管理大資料量。所謂的...