Git的使用以及GitHub的配置

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

使用方式

初始化本地代理倉庫 自動生成隱藏.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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,106評論 6 542
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,441評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,211評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,736評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 72,475評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,834評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,829評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,009評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,559評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,306評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,516評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,038評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,728評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,132評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,443評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,249評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 48,484評論 2 379

推薦閱讀更多精彩內(nèi)容

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,694評論 4 54
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,826評論 18 139
  • 現(xiàn)在這個時刻,身在異地,姐姐不能夠在學(xué)習(xí)上幫助你什么了,只能夠?qū)懴麓宋淖鳛槟愕募佑桶Mm然姐姐不在你身邊但是這...
    蘆薈柚子閱讀 438評論 2 2
  • 娃娃媽123閱讀 312評論 0 0
  • 轉(zhuǎn)眼已經(jīng)20幾天了,其實上周就已經(jīng)找到了工作,一時偷懶貪玩忘了寫文章,在這里先給一句雞湯:只要努力,堅持,好運就...
    Jelly妮閱讀 698評論 6 7