實(shí)用技術(shù)第3篇——git的使用

源代碼管理工具——git

什么是git?

  • git是一款開源的分布式版本控制工具
  • 在世界上所有的分布式版本控制工具中啡省,git是最快收擦、最簡單鼓拧、最流行的

其他版本控制工具

  • CVS

    • 最早的開源、免費(fèi)的集中式版本控制工具
    • 自身設(shè)計(jì)有問題娜扇,會(huì)造成提交文件不完整错沃,版本庫莫名其妙損壞的情況
  • SVN

    • 修正了CVS的一些穩(wěn)定性問題,是目前用得最多的集中式版本庫控制工具
  • ClearCase

    • 收費(fèi)的集中式版本控制工具袱衷,安裝比Windows還大捎废,運(yùn)行特別慢
    • 能用ClearCase的一般是世界500等大企業(yè)
  • VSS

    • 微軟的集中式版本控制工具,集成在VisualStudio中

集中式和分布式版本比較

集中式版本控制

image

分布式版本控制

image

git和SVN的簡單對(duì)比

  • 速度
    • 在很多情況下致燥,git的速度遠(yuǎn)遠(yuǎn)比SVN快
  • 結(jié)構(gòu)
    • SVN是集中式管理登疗,git是分布式管理
  • 其他
    • SVN使用分支比較笨拙,git可以輕松擁有無限個(gè)分支
    • SVN必須聯(lián)網(wǎng)才能正常工作嫌蚤,git支持本地版本控制工作
    • 舊版本的SVN會(huì)在每一個(gè)目錄置放一個(gè).svn辐益,git只會(huì)在根目錄擁有一個(gè).git

git和SVN的工作流程圖

SVN的工作流程

image

git的工作流程
image

  • 分布式和集中式的最大區(qū)別在于:在分布式下
    • 開發(fā)者可以本地提交
    • 每個(gè)開發(fā)者機(jī)器上都有一個(gè)服務(wù)器的數(shù)據(jù)庫

使用git

  • Mac上比較好用的git圖形界面客戶端

  • SourceTree

  • GitHub

  • pXcode

  • 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 configalias.別名 原指令名稱
設(shè)置帶參數(shù)指令的別名 —— git configalias.別名 “原指令名稱 參數(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
用一行的方式查看簡單的日志信息 —— 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è)空的本地倉庫脱吱,生成一個(gè).git目錄智政,用于維護(hù)版本信息
在當(dāng)前路徑初始化倉庫 —— git init
在其他路徑初始化倉庫 —— git init倉庫路徑

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支持無限次后悔)
回退到上一個(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操作续捂,才能同步到版本庫)
git clone —— 下載遠(yuǎn)程倉庫到本地

下載遠(yuǎn)程倉庫到當(dāng)前路徑 —— git clone倉庫的URL
下載遠(yuǎn)程倉庫到特定路徑 —— git clone倉庫的URL存放倉庫的路徑

git pull —— 下載遠(yuǎn)程倉庫的最新信息到本地倉庫
git push —— 將本地的倉庫信息推送到遠(yuǎn)程倉庫

工作原理

  • 工作區(qū)(Working Directory):倉庫文件夾里除.git目錄以外的內(nèi)容

  • 版本庫(Repository):.git目錄,用于存儲(chǔ)記錄版本信息

    • 暫緩區(qū)(stage)
    • 分支(master):git自動(dòng)創(chuàng)建的第一個(gè)分支
    • HEAD指針:用于指向當(dāng)前分支
  • gitadd和gitcommit的原理

    • gitadd:把文件修改添加到暫存區(qū)
    • gitcommit:把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支
圖1

image

遠(yuǎn)程倉庫

如果是多人團(tuán)隊(duì)開發(fā)宦搬,最好還是搭建一個(gè)遠(yuǎn)程倉庫

  • 搭建遠(yuǎn)程倉庫的途徑
    • 自己搭建一個(gè)git服務(wù)器:費(fèi)時(shí)費(fèi)力
    • 在GitHub上托管項(xiàng)目:公開項(xiàng)目免費(fèi)牙瓢、私有項(xiàng)目收費(fèi),很多第三方開源項(xiàng)目
    • 在oschina上托管項(xiàng)目:完全免費(fèi)间校,在國內(nèi)訪問速度快(推薦使用)

第1種:** 搭建GitHub遠(yuǎn)程倉庫 – 配置SSH Key**

步驟一

  • 注冊(cè)一個(gè)GitHub帳號(hào)
  • 打開“AccountSettings"
  • 配置Mac的SSHKey的公鑰(用于限制提交)

步驟二
查看ssh版本 ssh–v 打開終端矾克, ssh-keygen一路enter下。 在Mac上生成SSHKey(在終端輸入下面指令) cd~/.ssh ssh-keygen-t rsa-C "你的郵箱地址” 然后一直敲回車

然后就會(huì)在~/.ssh目錄下生成SSKKey的秘鑰對(duì) id_rsa:私鑰憔足,不可泄露 id_rsa.pub:公鑰胁附,可以公開(將這個(gè)文件的內(nèi)容粘貼到GitHub上)

利用cat指令可以查看文件的內(nèi)容 catid_rsa.pub

步驟三

  • 添加倉庫
    • 新建工程
    • 配置倉庫名稱酒繁、倉庫描述
    • 選擇忽略文件的類型

創(chuàng)建完成

第2種: 搭建oschina遠(yuǎn)程倉庫

  • 注冊(cè)一個(gè)oschina帳號(hào)
  • 新建項(xiàng)目
    • 配置名稱、介紹
    • 初始化項(xiàng)目
  • 獲取倉庫地址
  • 創(chuàng)建倉庫

創(chuàng)建完成

附錄:

// 顯示隱藏文件夾
# 顯示隱藏文件
 defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder
# 不顯示隱藏文件
 defaults write com.apple.finder AppleShowAllFiles No && killall Finder
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末控妻,一起剝皮案震驚了整個(gè)濱河市州袒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌饼暑,老刑警劉巖稳析,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異弓叛,居然都是意外死亡彰居,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門撰筷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陈惰,“玉大人,你說我怎么就攤上這事毕籽√Т常” “怎么了?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵关筒,是天一觀的道長溶握。 經(jīng)常有香客問我,道長蒸播,這世上最難降的妖魔是什么睡榆? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮袍榆,結(jié)果婚禮上胀屿,老公的妹妹穿的比我還像新娘。我一直安慰自己包雀,他們只是感情好宿崭,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著才写,像睡著了一般葡兑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赞草,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天讹堤,我揣著相機(jī)與錄音,去河邊找鬼房资。 笑死蜕劝,一個(gè)胖子當(dāng)著我的面吹牛檀头,可吹牛的內(nèi)容都是我干的轰异。 我是一名探鬼主播岖沛,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼搭独!你這毒婦竟也來了婴削?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤牙肝,失蹤者是張志新(化名)和其女友劉穎唉俗,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體配椭,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡虫溜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了股缸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衡楞。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖敦姻,靈堂內(nèi)的尸體忽然破棺而出瘾境,到底是詐尸還是另有隱情,我是刑警寧澤镰惦,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布迷守,位于F島的核電站,受9級(jí)特大地震影響旺入,放射性物質(zhì)發(fā)生泄漏兑凿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一眨业、第九天 我趴在偏房一處隱蔽的房頂上張望急膀。 院中可真熱鬧,春花似錦龄捡、人聲如沸卓嫂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晨雳。三九已至,卻和暖如春奸腺,著一層夾襖步出監(jiān)牢的瞬間餐禁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來泰國打工突照, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留帮非,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像末盔,于是被迫代替她去往敵國和親筑舅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

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

  • 聲明:這篇文章來源于廖雪峰老師的官方網(wǎng)站陨舱,我僅僅是作為學(xué)習(xí)之用 Git簡介 Git是什么翠拣? Git是目前世界上最先...
    橫渡閱讀 3,959評(píng)論 3 27
  • 最近,房地產(chǎn)的大火又一次將全國大部分城市燃燒起來游盲,與以往不同的是误墓,除了北上廣深的“好戲連臺(tái)”和南京、杭州益缎、武漢等熱...
    061a71a33958閱讀 583評(píng)論 1 0
  • 說實(shí)話谜慌,來參加這次教育學(xué)習(xí)活動(dòng),并非本意莺奔,而是學(xué)校領(lǐng)導(dǎo)安排的畦娄。沒辦法,躲...
    螢火蟲菇娘閱讀 432評(píng)論 0 1
  • 29.zslsww 這張照片是2016年12月27日晚在開州漢豐湖畔拍攝的弊仪。當(dāng)天晚上在工作下班后我們一起相約...
    zslsww閱讀 303評(píng)論 0 1
  • 廈門以前有個(gè)詩意的名字——鷺島熙卡。我相信在遙遠(yuǎn)的時(shí)代,這里白鷺翻飛励饵,漁歌互答驳癌。從元明一直到...
    吳獻(xiàn)敏閱讀 405評(píng)論 0 0