git版本倉庫知識分享 (http://zh.wikipedia.org/wiki/Git)git
基礎概念
Git是用於Linux內核開發的版本控制工具。與經常使用的版本控制工具CVS、Subversion等不一樣,它採用了分佈式版本庫的方式,沒必要服務器端軟件支持,使源代碼的發佈和交流極其方便。Git的速度很快,這對於諸如Linux kernel這樣的大項目來講天然很重要。Git最爲出色的是它的合併跟蹤(merge tracing)能力。
git基礎命令使用
建立一個版本庫
git init
Initialized empty Git repository in /path/.git/
這時會產生一個空的版本庫,在當前的目錄下面會有一個隱藏目錄/.git,其中文件的含義是
hooks 存儲鉤子的文件夾
logs 存儲日誌的文件夾
refs 存儲指向各個分支的指針(SHA-1標識)文件
objects 存放git對象
config 存放各類設置文檔
HEAD 指向當前所在分支的指針文件路徑,通常指向refs下的某文件
拉取版本倉庫代碼
git pull ssh://githosts/project/path
git clone ssh://githosts/project/path
githosts:是git的server ip地址,加上拉取項目的路徑。
以上兩條命令均可以把目前服務器上的項目拉取到本地
提交代碼
開發人員在本地更改了相關代碼以後,提交代碼的操做
git add test.txt
git commit test.txt
以上先經過add標記改test的文件是須要提交到服務器的,而後經過commit命令提交。能夠經過
git status
來查看目前分支下的情況,是否有文件更改以後沒有提交。
git commit -a -m "first commit "
以上的命令添加-a的參數直接代替以前的add命令
git push git@githosts:project/path master
push的命令用於提交到遠程git服務器。
建立分支
git branch
改命令顯示目前有多少分支,以及你正處於當前的哪個分支上面
git branch test
git checkout test
以上命令建立了test的分支,checkout是切換分支的意思,由於自己你在master上面建立了test的分支,可是默認你仍是在master上面,經過checkout切換到test分支上面
git checkout -b test
添加-b的參數是建立分支,而且切換到test上面
合併分支
通過以上建立的test分支,咱們更改完成,須要和主分支master合併
git checkout master
git merge test
切換到主分支,而後經過merge命令,合併進來test的分支。
合併分支容易出現衝突問題,由於若是倆個分支都對同一個文件作了更改,那麼在合併的時候,須要手動來解決衝突。經過git status來查看目前分支是否有未提交的文件,若是存在,先提交文件,而後在合併分支,通常會解決問題。
刪除分支
git branch -d test
分支合併以後,那麼能夠刪除沒有用處的test分支。-D是強制刪除
查看git的提交記錄
git log
經過git log能夠查看代碼的提交記錄。
git show
git status
會常常的使用來查看提交記錄以及目前有多少代碼處於未提交狀態!