【Git】Git簡易使用手冊(cè)

關(guān)于版本控制

版本控制是一種記錄若干文件內(nèi)容變化,以便將來查閱特定版本修訂情況的系統(tǒng)。

如果你是位圖形或網(wǎng)頁設(shè)計(jì)師教届,可能會(huì)需要保存某一幅圖片或頁面布局文件的所有修訂版 本。采用版本控制系統(tǒng)(VCS)是個(gè)明智的選擇驾霜。有了它你就可以將某個(gè)文件回溯到之前的 狀態(tài)案训,甚至將整個(gè)項(xiàng)目都回退到過去某個(gè)時(shí)間點(diǎn)的狀態(tài)。你可以比較文件的變化細(xì)節(jié)粪糙,查 出是誰最后修改了什么地方從而造成某些怪異問題强霎,又是誰在何時(shí)報(bào)告了某個(gè)功能缺陷, 等等蓉冈。使用版本控制系統(tǒng)通常還意味著城舞,就算你胡來搞砸了整個(gè)項(xiàng)目,把文件改的改寞酿,刪的刪家夺,你也可以輕松恢復(fù)到原先的樣子。而由此額外增加的工作量卻微乎其微伐弹。

1 本地版本控制系統(tǒng)

大多本地版本控制系統(tǒng)都是采用某種簡單的數(shù)據(jù)庫來記錄文件的歷次更新差異拉馋。如下圖:

本地版本控制

2 集中化的版本控制系統(tǒng)

這類系統(tǒng),諸如 CVS,Subversion 以及 Perforce 等煌茴,都有一個(gè)單一的集中管理的服務(wù)器随闺,保存所有文件的修訂版本,而協(xié)同工作的人們都通過客戶端連到這臺(tái)服務(wù)器蔓腐,取出最新的文件或 者提交更新矩乐。如下圖:

集中化版本控制

3 分布式版本控制系統(tǒng)

在這類系統(tǒng)中,諸如 Git合住,Mercurial绰精,Bazaar 還有 Darcs 等,客戶端并不只提取最新版本的文件快照透葛,而是把原始的代碼倉庫完整地鏡像下來。這么一來卿樱,任何一處協(xié)同工作用的服務(wù)器發(fā)生故障僚害,事后都可以用任何一個(gè)鏡像出來的本地倉庫恢復(fù)。因?yàn)槊恳淮蔚奶崛〔僮鞣钡鳎瑢?shí)際上都是一次對(duì)代碼倉庫的完整備份萨蚕。如下圖:

分布式版本控制

安裝Git

有許多安裝方式,概況起來主要有兩個(gè)蹄胰,一種是通過編譯源代碼來安裝岳遥;另一種是使用為特定平臺(tái)預(yù)編譯好的安裝包。

  1. 在Linux上安裝

    如果要在Linux上安裝預(yù)編譯好的git二進(jìn)制安裝包裕寨,可以直接使用系統(tǒng)提供的包管理工具浩蓉。在Fedora上yum安裝:

    $ yum install git-core
    

    在Ubuntu這類Debian體系的系統(tǒng)上,可以用apt-get安裝:

    $ apt-get install git-core
    
  2. 在Mac上安裝

    在Mac上安裝git有兩種方式宾袜。最容易的當(dāng)屬使用圖形化的git安裝工具捻艳,下載地址:

    下載地址

    另一種是通過Macports(http://www.macports.org)安裝。安裝好Macports之后庆猫,使用下面的命令安裝git:

    $ sudo port install git-core +svn +doc +bash_competition +gitweb
    
  3. 在Windows上安裝

    • 有個(gè)叫做msysgit的項(xiàng)目提供了安裝包认轨,可以從Google code的頁面上下載安裝文件:

    下載地址

    安裝完之后,就可以使用命令行的git工具了月培,另外還有一個(gè)圖形界面的git項(xiàng)目管理工具嘁字。

常用git命令

  1. 用戶信息配置

    要配置的是你個(gè)人的用戶名稱和電子郵件地址。這兩條配置很重要杉畜,每次git提交都會(huì)引用這兩條信息纪蜒,說明是誰提交了更新。

    $ git config --global user.name "" 
    $ git config --global user.email ...
    
  2. 設(shè)置的是默認(rèn)使用的文本編輯器

    默認(rèn)會(huì)使用操作系統(tǒng)指定的默認(rèn)編輯器寻行,一般可能會(huì)是 Vi 或者 Vim霍掺。也可以重新設(shè)置:

    $ git config --global core.editor ...
    
  3. 獲取幫助說明指令

    git help [子命令]
    
  4. 初始化本地倉庫

    使用以下命令會(huì)生成一個(gè).git文件夾(本地代碼倉庫),.git文件夾用來管理本地代碼,修改上傳杆烁,版本回退牙丽。

    git init
    
  5. 查看配置信息

    查看信息是否配置成功

    git config -l
    
  6. 將創(chuàng)建的文件添加到stage暫存區(qū)

    git add .
    
  7. 提交文件到指定的分支(默認(rèn)mater分支)

    git commit -m "(添加注釋說明)"
    
  8. 刪除文件并提交

    git rm 文件名
    
  9. 將刪除的文件提交到本地庫

    git commit -m "(添加注釋說明)"
    
  10. 查看日志

    查看git的更新日志和40位哈希值版本號(hào)

    git log
    

    查看git的更新日志和7位哈希值版本號(hào)

    git relog
    
  11. 代碼版本回退

    重置到當(dāng)前版本 git reset --hard HEAD
    重置到上上個(gè)版本 git reset --hard HEAD^^
    重置到往上3個(gè)版本 git reset --hard HEAD~3
    重置到指定版本 git reset --hard 七位版本號(hào)
    
  12. 恢復(fù)

    恢復(fù)某次提交的狀態(tài) git revert <$id> 
    恢復(fù)最后一次提交的狀態(tài) git revert HEAD
    
  13. 查看、切換兔魂、創(chuàng)建烤芦、刪除分支

    • 查看分支

      查看遠(yuǎn)程分支 git branch -r

      查看各個(gè)分支最后提交的信息 git branch -v

      查看已經(jīng)被合并到當(dāng)前分支的分支 git branch --merged

      查看尚未被合并到當(dāng)前分支的分支 git branch --no --merged

    • 切換分支

      git checkout <branch>

    • 創(chuàng)建新分支

      創(chuàng)建新的分支并且切換過去 git checkout -b <new_branch>

      創(chuàng)建基于branch分支的新分支new_branch git checkout-b <new_branch> <branch>

      把某次歷史記錄checkout出來并創(chuàng)建新分支 git checkout $id -b <new_branch>

    • 刪除分支

      刪除某個(gè)分支 git branch -d <branch>

      強(qiáng)制刪除某個(gè)分支(未被合并的分支在被刪除時(shí)需要強(qiáng)制) git branch -D <branch>

  14. git暫存管理

    暫存 git stash

    列所有暫存區(qū) git stash list

    恢復(fù)暫存區(qū)的內(nèi)容 git stash apply

    刪除暫存區(qū) git stash drop

  15. git遠(yuǎn)程倉庫管理

    查看遠(yuǎn)程服務(wù)器地址 git remote -v

    查看遠(yuǎn)程服務(wù)器倉庫狀態(tài) git remote show origin

    添加遠(yuǎn)程倉庫地址 git remote add origin ...

    刪除遠(yuǎn)程倉庫 git remote rm <repository>

  16. git遠(yuǎn)程分支管理

    • 遠(yuǎn)程分支抓取

      抓取遠(yuǎn)程倉庫所有分支更新并合并到本地 git pull

      抓取遠(yuǎn)程倉庫所有分支更新并合并到本地,不要快進(jìn)合并 git pull --no--ff

    • push遠(yuǎn)程分支

      push所有分支 git push

      將本地分支推到遠(yuǎn)程主分支 git push origin master

      將本地主分支推到遠(yuǎn)程(如無遠(yuǎn)程主分支則創(chuàng)建析校,用于初始化遠(yuǎn)程倉庫) git push -u origin master

      創(chuàng)建遠(yuǎn)程分支 git push origin <local_branch>
      創(chuàng)建遠(yuǎn)程分支 git push origin <local_branch>:<remote_branch>
      先刪除本地分支构罗,然后再push刪除遠(yuǎn)程分支 git push origin :<remote_branch>

    ?

Git與GitHub

? GitHub是目前為止最大的開源Git托管服務(wù),并且是少數(shù)同時(shí)提供公共托管和私人托管服務(wù)的站點(diǎn)之一智玻。

接下來的內(nèi)容主要描述講解如何使用git來將本地倉庫與GitHub賬戶的倉庫建立連接遂唧。

  1. 建立本地git倉庫

    進(jìn)入你要同步的本地項(xiàng)目的根目錄下,執(zhí)行g(shù)it命令:

    git init

  2. 將項(xiàng)目中所有的文件添加到倉庫中

    git add .

    如果只想添加某個(gè)特定的文件吊奢,只需把 . 換成特定文件名即可盖彭。

  3. 將add進(jìn)來的文件提交到倉庫

    git commit -m "(添加注釋語句 )"

  4. 在自己GitHub上創(chuàng)建一個(gè)倉庫(repository),界面如下:

    創(chuàng)建倉庫

    Repository name:填寫倉庫名稱

    Description:描述页滚,填寫倉庫的主題召边、內(nèi)容

    Public、Private:倉庫類型可選:公有裹驰、私有

    Initialize this repository with a README:初始化readme說明文件

    最后隧熙,點(diǎn)擊Create repository就可以成功創(chuàng)建倉庫了。

  5. 獲取倉庫地址

    要想本地倉庫與遠(yuǎn)程建立連接幻林,需要有遠(yuǎn)程倉庫的地址贞盯,獲取方法如下圖:

    獲取倉庫地址

    ?

  6. 將本地倉庫關(guān)聯(lián)到GitHub上

    進(jìn)入本地倉庫目錄,執(zhí)行如下git命令:

    git remote add origin ...(遠(yuǎn)程倉庫地址)

  7. 在上傳本地目錄之前滋将,要先pull一下邻悬,執(zhí)行如下git命令:

    git pull origin master

  8. 上傳本地倉庫到GitHub遠(yuǎn)程倉庫

    git push -u origin master

  9. 執(zhí)行完成,如果沒有異常随闽,等待上傳完成就上傳成功父丰。期間會(huì)要求輸入賬戶名和密碼,只需要輸入GitHub的賬戶和密碼就行掘宪。

Git GUI

Git有提供圖形界面蛾扇,下面簡要介紹如何使用。

  • 打開Git GUI魏滚,在右下角處選擇"重新掃描"镀首,如下:

    掃描新的改動(dòng)
  • 掃描完成后,在左上角處會(huì)顯示"未緩存的改動(dòng)"鼠次,如下:(點(diǎn)擊左邊的圖標(biāo)即可將文件添加到已緩存區(qū))

    未緩存
  • 點(diǎn)擊左側(cè)圖標(biāo)更哄,將"未緩存文件"添加到"已緩存文件"芋齿,如下:

    已緩存
  • 在"提交描述"框內(nèi)填寫此次修改的目的和原因,然后提交成翩。

    第一行:一句話概況你做的修改觅捆。

    第二行:空行。

    第三行:請(qǐng)描述為什么你做的這些改動(dòng)是好的麻敌。

    提交描述

    ?

  • 最后提交栅炒,會(huì)要求輸入用戶名和密碼,同樣是GitHub的賬戶名和密碼即可术羔。

    賬戶
    密碼
  • 上傳成功赢赊,提示如下:

    上傳成功

大概流程差不多這樣了,還有其他一些功能级历,比如分支管理释移,等深入學(xué)習(xí)了有時(shí)間再分享。

后言

感謝閱讀寥殖,歡迎指教秀鞭。本人簡書和GitHub —>(簡書/GitHub

good luck!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末扛禽,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子皱坛,更是在濱河造成了極大的恐慌编曼,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剩辟,死亡現(xiàn)場離奇詭異掐场,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)贩猎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門熊户,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吭服,你說我怎么就攤上這事嚷堡。” “怎么了艇棕?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵蝌戒,是天一觀的道長。 經(jīng)常有香客問我沼琉,道長北苟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任打瘪,我火速辦了婚禮友鼻,結(jié)果婚禮上傻昙,老公的妹妹穿的比我還像新娘。我一直安慰自己彩扔,他們只是感情好妆档,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著借杰,像睡著了一般过吻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蔗衡,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天纤虽,我揣著相機(jī)與錄音,去河邊找鬼绞惦。 笑死逼纸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的济蝉。 我是一名探鬼主播杰刽,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼王滤!你這毒婦竟也來了贺嫂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤雁乡,失蹤者是張志新(化名)和其女友劉穎第喳,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體踱稍,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡曲饱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了珠月。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扩淀。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖啤挎,靈堂內(nèi)的尸體忽然破棺而出驻谆,到底是詐尸還是另有隱情,我是刑警寧澤侵浸,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布旺韭,位于F島的核電站,受9級(jí)特大地震影響掏觉,放射性物質(zhì)發(fā)生泄漏区端。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一澳腹、第九天 我趴在偏房一處隱蔽的房頂上張望织盼。 院中可真熱鬧杨何,春花似錦、人聲如沸沥邻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽唐全。三九已至埃跷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間邮利,已是汗流浹背弥雹。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留延届,地道東北人剪勿。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像方庭,于是被迫代替她去往敵國和親厕吉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

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

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git械念,從https:/...
    落魂灬閱讀 12,652評(píng)論 4 54
  • git作為時(shí)下最流行的代碼管理工具头朱,Git權(quán)威指南總結(jié)了十條喜歡Git的理由: 異地協(xié)同工作; 現(xiàn)場版本控制龄减; 重...
    古斟布衣閱讀 1,819評(píng)論 0 12
  • 我亦顧聲名髓窜, 如暗夜星辰; 我亦奔前程欺殿, 如燭燃長夜; 我生而知之鳖敷, 如根之頓地脖苏; 我思獨(dú)慎行, 如道法自然定踱。
    乙知己閱讀 262評(píng)論 1 6
  • 作者 曹其真 作者簡介: 曹其真.大蓮花勳賢(1941年12月-)棍潘,女,祖籍浙江寧波鄞縣崖媚;1941年出生於上海亦歉。早...
    回歸當(dāng)初閱讀 822評(píng)論 0 1
  • 2017.11.15.晴 有一本書上說這是小孩想象力的表現(xiàn),不是故意撒謊畅哑,大人不要亂貼標(biāo)簽肴楷。 也許:寶貝是想這樣就...
    叮鐺之眼閱讀 1,649評(píng)論 0 0