git介紹
什么是git斜做?
git 是一種目前最流行赏枚,最好用的版本管理系統(tǒng)(Version Control System (VCS))。
git的特點
分布式:每個開發(fā)人員在檢出(checkout)代碼之后膊存,在本地都會有一份完整的版本庫判哥。其中包含所有歷史版本的代碼和版本之間的關系。使用git的開發(fā)可以不依賴于網(wǎng)絡保存版本信息谤绳,在有網(wǎng)絡后再提交更改占锯。
支持非線性開發(fā):新的特性可以不依賴于其他特性的版本,在改動提交合并后缩筛,兩個特性可以合并到一個分支中消略。
兼容現(xiàn)有的通信協(xié)議:可以通過http,ftp瞎抛,socket艺演,ssh發(fā)布版本。同時桐臊,git還有其他VCS的模擬器胎撤,如git-svn。
開源断凶。
文件結構
git有兩種文件結構:
可變的伤提,保存著工作目錄的所有改動。
-
不可變的认烁,只能添加的文件對象系統(tǒng)肿男。
a. 二進制文件對象(binary large object (blob)):只包含文件,沒有文件名却嗡,沒有時間戳舶沛,等其他元數(shù)據(jù)。
b. 樹對象:包含文件列表窗价,保存著一個版本樹的快照如庭。
c. 提交對象:聯(lián)結樹對象,組成提交歷史信息舌镶。包含樹對象的名稱柱彻,時間信息和提交信息。
d. 標簽對象:一般用來標記特定的版本餐胀。
庫結構
heads:本地對象哟楷。
remotes:遠程對象。
stash:沒有提交的對象否灾。
meta:元數(shù)據(jù)卖擅。
tags:標簽。
git服務提供商
Bitbucket
GitHub
Gitorious
Google Code
SourceForge
CSDN CODE
GitCafe
Gitlab
git使用
初始化本地git版本庫
從現(xiàn)有的線上服務中檢出版本:
git clone some_url
本地新建版本庫:
git init
。然后設置遠程目錄:git remote add origin some_url
初始化git用戶信息
-
全局:
git config --global user.name "your_name"
git config --global user.email "your_email"
-
項目內(nèi):
去掉
--global
工作流
將遠程的改動下載到本地:
git pull
惩阶。新建分支進行改動:
git checkout -b branch_name
挎狸。改動本地文件:保存本地文件。
緩存區(qū):保存本地未提交的改動断楷。通過
git add some_file
來添加锨匆。HEAD:提交的版本。通過
git commit -m 'some_message'
來提交冬筒。origin:遠程庫的版本恐锣。通過
git push origin branch_name
來推送。切換到master上舞痰,并合并分支:
git checkout master
土榴,git merge branch_name
。再推送到遠程庫上响牛。
分支管理
創(chuàng)建分支并切換到這個分支:
git checkout -b branch_name
玷禽。切換分支:
git checkout branch_name
。刪除分支:
git branch -d branch_name
呀打。合并某分支到當前分支:
git merge branch_name
矢赁。查看分支之間的改動:
git diff one_branch another_branch
。
標簽管理
- 為某個版本添加標簽:
git tag 1.0.0 version_number
聚磺。version_number可以用git log
來查看坯台。
替換本地改動
git checkout -- file_name
。丟棄本地改動與提交瘫寝,重置為服務器的狀態(tài):
git fetch origin
蜒蕾。