Git是一款分布式版本控制系統(tǒng),有別于SVN集中式版本管理控制系統(tǒng),Git可以讓團隊更加高效的協(xié)同工作,提高工作效率,也不會因為頻繁遭遇提交沖突而中斷,更不用擔(dān)心數(shù)據(jù)的備份,隨著近幾年互聯(lián)網(wǎng)的發(fā)展,現(xiàn)在很多的開發(fā)者已經(jīng)開始使用Git,相信不久的將來,Git上的人數(shù)還將越來越多.
Git優(yōu)點
- 相比SVN,git可以輕松擁有無限個分支
- SVN使用的時候必須聯(lián)網(wǎng)才能正常工作(一旦服務(wù)器掛了就沒法提交代碼了),git支持本地版本控制工作
Git與SVN版本控制系統(tǒng)示意圖 對比
- SVN采用集中式版本控制:如圖所示
集中式版本控制(SVN).png
- Git采用分布式版本控制:如圖所示
分布式版本控制(Git).png
Git與SVN工作流程圖對比
- SVN工作流程圖
SVN工作流程圖.png
- Git工作流程圖
Git工作流程圖.png
使用方式
- 和SVN一樣,可以使用命令行指令或者圖形界面客戶端使用Git
- Xcode集成
- SourceTree下載地址:http://www.sourcetreeapp.com/download/
- GitHub Desktop下載地址 :https://mac.github.com
初始化本地代理倉庫 自動生成隱藏.git的文件夾
git init --初始化本地倉庫
touch test.txt --創(chuàng)建文件
git status test.txt -- 查看狀態(tài) (紅色 表示沒有添加到暫緩區(qū))
git add test.txt --或者git add (添加到暫緩去,提交所有文件到暫緩區(qū))
git commit test.txt
//這時候會進入編輯模式,讓我們添加做了哪些事情,寫完之后,esc 退出編輯模式,:wq 保存并退出
git commit -m "初始化項目" //直接提交
本地用戶信息配置
git config -l 查看當(dāng)前配置信息
git config user.name J_mailbox
git config user.email J_mailbox@163.com //配置本地
//信息保存位置:chengaojian(用戶名)
/Users/chengaojian/.git/config
打開config信息如下:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[user]
name = J_mailbox
email = J_mailbox@163.com
全局用戶信息配置
git config --global user.name J_mialbox
git config --global user.email J_mialbox@163.com
//信息保存位置:chengaojian(用戶名)
/Users/chengaojian/.gitconfig
打開gitconfig信息如下:
[user]
name = J_mialbox
email = J_mialbox@163.com
git log --查看歷史
隨著Swift的開源,越來越多的優(yōu)秀項目在GitHub開放,這也有利于我們開發(fā)者們更好的學(xué)習(xí)以及使用這些開源的優(yōu)秀代碼,為了以后更好的學(xué)習(xí)和分享,接下來我們也將建立屬于自己的GitHub賬號,方便以后與人分享自己的點滴.
- 注冊GitHub賬號
- 配置公鑰
- 創(chuàng)建屬于自己的倉庫
- 配置倉庫信息
- 完成配置
- 托管自己的項目
首先注冊一個GitHub的賬號,由于比較簡單就不多說了,如下圖:
GitHub注冊.png
登陸成功后,默認界面是這樣的如圖:
Git首頁.png
添加公鑰
- 第一步:點擊用戶名頭像,然后選擇Settings進入下個頁面,如下圖:
添加公鑰配置.png
配置公鑰 (見最后補充:)
- 第二步:點擊SSH keys,完成公鑰頁面的相關(guān)配置,如下圖:
添加公鑰.png
創(chuàng)建項目倉庫
- 第三步:點擊用戶頭像旁邊 "+" 號,選擇New repository完成倉庫的配置,如下圖:
創(chuàng)建項目倉庫.png
倉庫配置
- 第四步:進入倉庫配置界面,填寫相關(guān)信息,完成倉庫的創(chuàng)建,具體填寫內(nèi)容如下圖:
倉庫配置.png
完成界面
- 第五步:完成界面如下圖:
完成界面.png
發(fā)布項目到GitHub上
** 1.本地建立一個測試項目,名為GitHub-Demo **
** 2.復(fù)制上面創(chuàng)建好的項目庫地址 通過git clone 克隆到本地新建立的Demo文件夾中 **
** 3.創(chuàng)建GitHub-Demo測試項目 **
** 4.cd到項目文件夾GitHub-Demo文件夾中 **
** 5.將剛創(chuàng)建的GitHub-Demo測試項目通過git add . 保存到暫緩區(qū) **
** 6.然后通過git commit -m “創(chuàng)建一個測試項目”將暫緩區(qū)的文件提交到當(dāng)前分支 **
具體步驟如下圖(分別通過終端和Xcode操作):
終端操作01.png
終端操作02.png
GitHub01.png
Xcode.png
GitHub02.png
客戶端SourceTree
- 通過客戶端SourceTree可對我們的項目版本進行完美的管理
SourceTree.png
客戶端GitHub
- 由于客戶端的使用比較簡單,這里就不多敘述,如果不了解的請自行百度.
客戶端GitHub.png
關(guān)于Git的一些其他指令
git --help 查看幫助
git --help checkout 查看checkout具體用法
esc --退出編輯狀態(tài)
:wq --保存并退出
git help :git指令幫助手冊
查看其他指令的做法: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)用到整個系統(tǒng)中:git config ––gloabal
git status :查文件的狀態(tài)
查看某個文件的狀態(tài):git status 文件名
查看當(dāng)前路徑所有文件的狀態(tài):git status
git log :查看文件的修改日志
查看某個文件的修改日志:git log 文件名
查看當(dāng)前路徑所有文件的修改日志:git log
用一行的方式查看簡單的日志信息:git log ––pretty=oneline
查看最近的N次修改:git log –N(N是一個整數(shù))
git diff :查看文件最新改動的地方
查看某個文件的最新改動的地方:git diff 文件名
查看當(dāng)前路徑所有文件最新改動的地方:git diff
git init :初始化一個空的本地倉庫,生成一個.git目錄,用于維護版本信息
在當(dāng)前路徑初始化倉庫:git init
在其他路徑初始化倉庫:git init 倉庫路徑
git add :將工作區(qū)的文件保存到暫緩區(qū)
保存某個文件到暫緩區(qū):git add 文件名
保存當(dāng)前路徑的所有文件到暫緩區(qū):git add .(注意,最后是一個點 . )
git commit :將暫緩區(qū)的文件提交到當(dāng)前分支
提交某個文件到分支:git commit -m ”注釋” 文件名
保存當(dāng)前路徑的所有文件到分支:git commit -m ”注釋”
git reset :版本回退(建議加上––hard參數(shù),git支持無限次后悔)
回退到上一個版本:git reset ––hard HEAD^
回退到上上一個版本:git reset ––hard HEAD^^
回退到上N個版本:git reset ––hard HEAD~N(N是一個整數(shù))
回退到任意一個版本:git reset ––hard 版本號(版本號用7位即可)
git reflog :查看指令使用記錄(能夠查看所有的版本號)
git rm:刪除文件(刪完之后要進行commit操作,才能同步到版本庫)
git clone:下載遠程倉庫到本地
下載遠程倉庫到當(dāng)前路徑:git clone 倉庫的URL
下載遠程倉庫到特定路徑:git clone 倉庫的URL 存放倉庫的路徑
git pull:下載遠程倉庫的最新信息到本地倉庫
git push:將本地的倉庫信息推送到遠程倉庫
如果想了解git的工作原理,有幾個核心概念必須知道
工作區(qū)(Working Directory):倉庫文件夾里除.git目錄以外的內(nèi)容
版本庫(Repository):.git目錄,用于存儲記錄版本信息
暫緩區(qū)(stage)
分支(master):git自動創(chuàng)建的第一個分支
HEAD指針:用于指向當(dāng)前分支
好了,關(guān)于Git今天就先介紹到這里,不得不說Git是一個高大上的分布式版本控制系統(tǒng),通過Git可以使我們的工作效率大大提升,但是要想熟練Git中的所有知識卻不是那么的容易,一句話工作中遇到什么問題通過百度解決即可.如果有感興趣的朋友,可以參考此網(wǎng)站:http://git-scm.com/doc 學(xué)習(xí)更多有關(guān)Git的知識.
-----------------------------------------
補充: 關(guān)于SSH Key公鑰的生成
- 打開終端輸入:ssh-keygen -t rsa -C "你的郵箱" 一路回車即可(中間有提示讓輸入密碼,可跳過),然后到/Users/你的電腦名/.ssh/id_rsa.pub下找到并打開id_rsa.pub就是生產(chǎn)的公鑰,或者直接通過終端指令直接打開id_rsa.pub也可以.
SSH key 公鑰生成步驟如下圖:
SSH公鑰的生成.png