git簡介
是什麼:
git是目前世界上最先進的分布式版本控制系統,通俗的說就是分布式管理**的軟體工具。它是linus公司用c語言兩周完成的。
集中式版本控制系統和分布式版本控制系統的比較:
集中式特點:版本庫必須集中存放在**伺服器;必須聯網工作;速度慢;安全性低;
分布式特點:每台電腦都是乙個版本庫;無需聯網工作;速度快;安全性高;強大的分支管理。
git安裝
linux平台:
如果是debian或ubuntu linux,通過一條sudo apt-get install git就可以直接完成git的安裝;老一點的debian或ubuntu linux,要把命令改為sudo apt-get install git-core;
windows平台:
安裝完成後,在開始選單裡找到「git」->「git bash」,蹦出乙個類似命令列視窗的東西,就說明git安裝成功!
安裝完成後,進行設定:
$ git config --global user.name "your name"
$ git config --global user.email "
"git config命令的--global引數,用了這個引數,表示你這台機器上所有的git倉庫都會使用這個配置,當然也可以對某個倉庫指定不同的使用者名稱和email位址。
建立版本庫(windows平台):
建立乙個空白目錄,盡量不使用中文;
進入此目錄後,用git init 命令把這個目錄變成git管理的倉庫;
這時會發現當前目錄下多了乙個.git的目錄,這個目錄是git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄裡面的檔案,不然就把git倉庫給破壞了;
把需要版本管理的檔案放入暫存區域,用 git add 檔名;
把暫存區域的檔案提交到git倉庫,用 git commit -m 「注釋」;
時光穿梭
版本回退:
git log或者git log --pretty=oneline命令顯示從最近到最遠的提交日誌(檢視歷史版本);
git reset --hard head^ 回退到上乙個版本(head表示當前版本,^有幾個就回退幾個);
git reset --hard head^^ 回退到上上個版本;
git reset --hard 版本號 回退到該版本號(版本號可以寫前幾位);
用git reflog檢視命令歷史;
三區域:
工作區:電腦裡能看到的目錄;
暫存區:.git(git的版本庫)裡存了最重要的就是稱為stage(或者叫index)的暫存區;
分支區(git倉庫):.git(git的版本庫)裡存了git為我們自動建立的第乙個分支master,以及指向master的乙個指標叫head;
git add把檔案新增進去,只負責把檔案修改新增到暫存區;
git commit提交更改,只負責把暫存區的所有內容提交到當前分支。
git管理的實質是修改,而不是檔案。
git status 檢視狀態
撤銷修改:
場景1:當你改亂了工作區某個檔案的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。
場景2:當你不但改亂了工作區某個檔案的內容,還新增到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset head ,就回到了場景1,第二步按場景1操作。
場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參考版本回退一節,不過前提是沒有推送到遠端庫。
命令git checkout -- file意思就是,把 file檔案在工作區的修改全部撤銷,這裡有兩種情況:
一種是file自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
一種是file已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。
總之,就是讓這個檔案回到最近一次git commit或git add時的狀態。
刪除檔案:
在工作區中:你通常直接在檔案管理器中把沒用的檔案刪了,或者用rm命令刪了;然後你確實要刪除版本庫中的內容,那就用命令git rm或者git add 命令刪掉,並且git commit。
另一種情況是刪錯了,因為版本庫里還有呢,所以可以很輕鬆地把誤刪的檔案恢復到最新版本,git checkout其實是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以「一鍵還原」。
命令git rm用於刪除乙個檔案。如果乙個檔案已經被提交到版本庫,那麼你永遠不用擔心誤刪,但是要小心,你只能恢復檔案到最新版本,你會丟失最近一次提交後你修改的內容。
紅黑樹學習上篇
如果你已經掌握了紅黑樹前篇的內容,那麼很高興你已經具備了學習紅黑樹的資本。左旋轉和右旋轉是紅黑樹中為了調節紅黑個數而設計的方案,所以,此篇主要講解一下旋轉問題。旋轉是紅黑樹中最簡單的東東,不過也是最基礎的,由於涉及到紅黑樹的性質,所以先從學習紅黑樹的五個性質開始吧。1,紅黑樹的五個性質 1 每個結點...
oracle學習上課1
oracle的本地服務oracle net oracle建立例程 相當於建立oracle的資料庫,建立例程orcl 建立資料庫orcl 建立例程test 建立資料庫test 同時你會發現你的作業系統服務多了兩個服務 登入oracle 一使用者名稱指定身份,鏈結到指定的資料庫,sql語句 conn 使...
指標的學習 上)
include include using namespace std intmain int argc,char ar int main int argc,char ar include include using namespace std intmain int argc,char ar in...