一、簡(jiǎn)介
git是一款開源的分布式版本控制工具
在世界上所有的分布式版本控制工具中,git是最快、最簡(jiǎn)單、最流行的
git起源
作者是Linux之父:Linus Benedict Torvalds
當(dāng)初開發(fā)git僅僅是為了輔助Linux內(nèi)核的開發(fā)(管理代碼)
git的現(xiàn)狀
在國(guó)外已經(jīng)非常普及,國(guó)內(nèi)并未普及(在慢慢普及)越來(lái)越多的開源項(xiàng)目已經(jīng)轉(zhuǎn)移到git
二、SVN 和Git 對(duì)比
速度
在很多情況下,git的速度遠(yuǎn)遠(yuǎn)比SVN快
結(jié)構(gòu)
SVN是集中式管理,git是分布式管理
其他
SVN 使用分支比較笨拙,git可以輕松擁有無(wú)限分支
SVN必須聯(lián)網(wǎng)才能正常工作,git支持本地版本控制工作
舊版本的SVN會(huì)在每一個(gè)目錄放置一個(gè).SVN,git只會(huì)在根目錄有一個(gè).git
分布式和集中式最大的區(qū)別在于:在分布式下,開發(fā)者可以本地提交。每個(gè)開發(fā)者機(jī)器上都有一個(gè)服務(wù)器的數(shù)據(jù)庫(kù)
三、使用Git
跟SVN一樣,你可以通過(guò)命令行敲指令或者圖形界面客戶端使用Git
在mac上,比較好用的git圖形界面客戶端有
SourceTree
GitHub
不過(guò)它是專門為GitHub網(wǎng)站而設(shè)計(jì)的
Xcode
四、git 常用指令
git help :git指令幫助手冊(cè)
查看其他指令的做法:git help 其他指令
git config :git的配置信息相關(guān)(修改的是.git/config文件)
配置用戶名:git config “user.name” 用戶名(用于跟蹤修改記錄)
配置郵箱:git config “user.email” 郵箱(用于多人開發(fā)間的溝通)
查看配置信息:git config –l
編輯配置信息:git config –e(用vim編輯,:wq是退出vim編輯器)
設(shè)置指令的別名:git config alias.別名 原指令名稱
設(shè)置帶參數(shù)指令的別名:git config alias.別名 “原指令名稱 參數(shù)”
將此設(shè)置應(yīng)用到整個(gè)系統(tǒng)中:git config ––gloabal
git status :查文件的狀態(tài)
查看某個(gè)文件的狀態(tài):git status 文件名
查看當(dāng)前路徑所有文件的狀態(tài):git status
git log :查看文件的修改日志
查看某個(gè)文件的修改日志:git log 文件名
查看當(dāng)前路徑所有文件的修改日志:git log
用一行的方式查看簡(jiǎn)單的日志信息:git log ––pretty=oneline
查看最近的N次修改:git log –N(N是一個(gè)整數(shù))
git diff :查看文件最新改動(dòng)的地方
查看某個(gè)文件的最新改動(dòng)的地方:git diff 文件名
查看當(dāng)前路徑所有文件最新改動(dòng)的地方:git diff
git init :初始化一個(gè)空的本地倉(cāng)庫(kù),生成一個(gè).git目錄,用于維護(hù)版本信息
在當(dāng)前路徑初始化倉(cāng)庫(kù):git init
在其他路徑初始化倉(cāng)庫(kù):git init 倉(cāng)庫(kù)路徑
git add :將工作區(qū)的文件保存到暫緩區(qū)
保存某個(gè)文件到暫緩區(qū):git add 文件名
保存當(dāng)前路徑的所有文件到暫緩區(qū):git add .(注意,最后是一個(gè)點(diǎn) . )
git commit :將暫緩區(qū)的文件提交到當(dāng)前分支
提交某個(gè)文件到分支:git commit -m ”注釋” 文件名
保存當(dāng)前路徑的所有文件到分支:git commit -m ”注釋”
git reset :版本回退(建議加上––hard參數(shù),git支持無(wú)限次后悔)
回退到上一個(gè)版本:git reset ––hard HEAD^
回退到上上一個(gè)版本:git reset ––hard HEAD^^
回退到上N個(gè)版本:git reset ––hard HEAD~N(N是一個(gè)整數(shù))
回退到任意一個(gè)版本:git reset ––hard 版本號(hào)(版本號(hào)用7位即可)
git reflog :查看分支引用記錄(能夠查看所有的版本號(hào))
git rm:刪除文件(刪完之后要進(jìn)行commit操作,才能同步到版本庫(kù))
git clone:下載遠(yuǎn)程倉(cāng)庫(kù)到本地
下載遠(yuǎn)程倉(cāng)庫(kù)到當(dāng)前路徑:git clone 倉(cāng)庫(kù)的URL
下載遠(yuǎn)程倉(cāng)庫(kù)到特定路徑:git clone 倉(cāng)庫(kù)的URL 存放倉(cāng)庫(kù)的路徑
git pull:下載遠(yuǎn)程倉(cāng)庫(kù)的最新信息到本地倉(cāng)庫(kù)
git push:將本地的倉(cāng)庫(kù)信息推送到遠(yuǎn)程倉(cāng)庫(kù)
五、工作原理
幾個(gè)核心概念必須知道
浙公網(wǎng)安備 33010602011771號(hào)