Git簡明復(fù)習(xí)指南

Git簡明復(fù)習(xí)指南


為什么需要版本管理工具呢层宫?
舉個(gè)栗子,比如我們寫畢業(yè)論文其监,經(jīng)常需要修改萌腿,有可能最新的修改改了一半發(fā)現(xiàn)搞錯(cuò)了,就要回退到前一個(gè)版本抖苦,甚至發(fā)現(xiàn)這幾天的修改都搞錯(cuò)了毁菱,要回退到前幾天的版本,解決這個(gè)問題的土辦法就是每次修改都另存為一個(gè)版本锌历,于是你的文件夾下是這個(gè)樣子的:

20160405_1.docx
20160405_2.docx
20160406_1.docx
20160406_1(更新).docx
20160406_1(最新復(fù)制).docx
20160406_1(修改版).docx
終稿.docx
終稿(0408最終版).docx
終稿(0408打死不改版本).docx
終稿(0408無力吐槽終版).docx

對(duì)于大多數(shù)懶癌患者來說贮庞,是不會(huì)為這個(gè)土辦法定義一個(gè)嚴(yán)格的命名規(guī)則的,所以時(shí)間越長辩涝,文件越多贸伐,天知道哪一個(gè)版本是最新的了勘天。另外怔揩,版本之間改動(dòng)了什么更是難以從文件標(biāo)題中體現(xiàn),更不用說團(tuán)隊(duì)共同編輯文件的沖突問題了脯丝。

版本管理工具就是為了解決這些高成本低效率的問題而產(chǎn)生的商膊。

碼農(nóng)常用的項(xiàng)目源碼管理工具中有cvs、svn宠进、git晕拆,雖然各有特點(diǎn),但是只要學(xué)會(huì)一個(gè)材蹬,其他臨時(shí)學(xué)習(xí)的成本也低实幕,筆者還是覺得git用得最爽,逼格最高堤器。不過要說明的是昆庇,不管哪種工具,都只能跟蹤文本的改動(dòng)闸溃,無法跟蹤二進(jìn)制內(nèi)容的改動(dòng)整吆,比如在文本的某行增加了一個(gè)單詞“hellword”拱撵,或者這個(gè)單詞修改為“helloword”,這個(gè)是可以跟蹤的表蝙,但是對(duì)于二進(jìn)制文件拴测,無法跟蹤某個(gè)字節(jié)的變動(dòng),只能跟蹤文件的大小變化府蛇。

cvs和svn都是集中式集索,那集中式和分布式有什么區(qū)別呢?不必了解欲诺,拋棄他們就是了抄谐!

git簡介

什么是git?
git是最有逼格的分布式版本管理系統(tǒng)扰法,因?yàn)樗莑inux大師linus開發(fā)的蛹含!憑什么linus開發(fā)的就最有逼格?因?yàn)檫@是他為了不向某商業(yè)公司道歉塞颁,任性花了兩周時(shí)間寫出來的浦箱,就跟黃老邪一樣,就是任性不解釋祠锣,這難道還沒有逼格酷窥?(具體八卦請(qǐng)google)

git能干什么?
簡單來說伴网,git在各個(gè)時(shí)間點(diǎn)把文檔的狀態(tài)作為一條條更新記錄保存起來(保存在數(shù)據(jù)庫中)蓬推,根據(jù)記錄就可以把文檔恢復(fù)到以前某個(gè)時(shí)間點(diǎn)的狀態(tài),也可以顯示編輯前后的變化澡腾,git也能保證避免多人參與編輯的沖突問題沸伏。

一些基本概念

  • 遠(yuǎn)程數(shù)據(jù)庫:為了多人共享的服務(wù)器上的數(shù)據(jù)庫
  • 本地?cái)?shù)據(jù)庫:為了方便用戶個(gè)人使用的本機(jī)上的數(shù)據(jù)庫
  • 創(chuàng)建數(shù)據(jù)庫的方法有兩種:創(chuàng)建全新的本地?cái)?shù)據(jù)庫;復(fù)制遠(yuǎn)程數(shù)據(jù)庫
  • 工作樹和索引:工作樹就是工作區(qū)动分,索引就是暫存區(qū)毅糟,文檔就是在工作區(qū)中進(jìn)行修改,修改后先加入暫存區(qū)澜公,然后再提交到數(shù)據(jù)庫中姆另。

Git基本操作流程

初始配置

git安裝后,首先要進(jìn)行一下身份配置坟乾,這個(gè)身份信息作為提交者信息顯示在更新記錄中迹辐。這里的global表示本機(jī)的所有倉庫都使用這個(gè)配置,就跟系統(tǒng)環(huán)境變量類似

git config --global user.name "username"
git config --global user.email "email"

另外為了顏值高一點(diǎn)甚侣,可以執(zhí)行如下命令

git config --global color.ui auto

創(chuàng)建數(shù)據(jù)庫

前面說過明吩,創(chuàng)建數(shù)據(jù)庫有兩種方法,在本地新建和復(fù)制遠(yuǎn)程數(shù)據(jù)庫

  • 本地新建數(shù)據(jù)庫
$ mkdir gitExample
$ cd gitExample
$ git init
Initialized empty Git repository in /Users/yourname/gitExample/.git/

隨便在gitExample目錄下創(chuàng)建一個(gè)sample.txt的文本文件渺绒,輸入如下內(nèi)容:

helloworld

使用status命令可以查看工作區(qū)和暫存區(qū)的狀態(tài)

$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#     sample.txt
nothing added to commit but untracked files present (use "git add" to track)

上面顯示untracked說明文件的修改狀態(tài)還停留在工作區(qū)贺喝,沒有加入暫存區(qū)菱鸥,所以不能被跟蹤。接下來使用add命令加入暫存區(qū)躏鱼,格式為git add <file>..(用空格分割多個(gè)文件氮采,git add .可以把所有文件加入索引)

git add sample.txt

繼續(xù)使用status命令查看文件是否進(jìn)入暫存區(qū)

$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#     new file:   sample.txt
#

上面顯示to be committed,說明文件狀態(tài)已經(jīng)被跟蹤了染苛,只需要提交了鹊漠,使用git commit -m " "

$ git commit -m "first commit"
[master (root-commit) 116a286] first commit
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 sample.txt

$ git status
# On branch master
nothing to commit (working directory clean)

使用log命令,就可以看到數(shù)據(jù)庫中最新的提交記錄

$ git log
commit 3c56e434afbbe1eab7ebce573ab48ac4c74ad601
Author: yourname <username@example.com>
Date:   Thu Jul 12 18:00:21 2013 +0900

    first commit

廖雪峰沒有說明的一些情況(不定期補(bǔ)上)

當(dāng)git init茶行,git add文件之后躯概,還沒來得及commit之前,此時(shí)版本庫中是沒有任何版本存在的畔师,這時(shí)候發(fā)現(xiàn)git add錯(cuò)了娶靡,需要撤銷,是無法使用git reset HEAD file的看锉,只能用git rm --cached file姿锭。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市伯铣,隨后出現(xiàn)的幾起案子呻此,更是在濱河造成了極大的恐慌,老刑警劉巖腔寡,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件焚鲜,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡放前,警方通過查閱死者的電腦和手機(jī)忿磅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來犀斋,“玉大人贝乎,你說我怎么就攤上這事情连∵创猓” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵却舀,是天一觀的道長虫几。 經(jīng)常有香客問我,道長挽拔,這世上最難降的妖魔是什么辆脸? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮螃诅,結(jié)果婚禮上啡氢,老公的妹妹穿的比我還像新娘状囱。我一直安慰自己,他們只是感情好倘是,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布亭枷。 她就那樣靜靜地躺著,像睡著了一般搀崭。 火紅的嫁衣襯著肌膚如雪叨粘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天瘤睹,我揣著相機(jī)與錄音升敲,去河邊找鬼。 笑死轰传,一個(gè)胖子當(dāng)著我的面吹牛驴党,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播获茬,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鼻弧,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了锦茁?” 一聲冷哼從身側(cè)響起攘轩,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎码俩,沒想到半個(gè)月后度帮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡稿存,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年笨篷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瓣履。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡率翅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出袖迎,到底是詐尸還是另有隱情冕臭,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布燕锥,位于F島的核電站辜贵,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏归形。R本人自食惡果不足惜托慨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望暇榴。 院中可真熱鬧厚棵,春花似錦蕉世、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至柿祈,卻和暖如春哈误,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背躏嚎。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國打工蜜自, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人卢佣。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓重荠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親虚茶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子戈鲁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

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