Git---技巧(轉)

上一篇介紹了Git的基本概念和一些基本命令,本篇的重點在以下三個部分:個性化定製你的Git,更酷更巧妙的使用Git,以及如何在Git Hub上開啓你本身的開源項目。在全部技巧中,最重要的技巧是學會查看Git的幫助,由於Git是一個相對複雜的版本控制工具,若是你熟悉它的命令,那麼給你帶來的價值是不言而喻的,因此要學會掌握那根金手指─查看Git的幫助,在任何Git命令後加上'--help'就會顯示該命令的幫助文檔,例如 'git log --help'你就能夠看到命令'git log'的全部使用方法。接下來,從打扮Git開始吧。git

Git梳妝程序員

咱們能夠利用Git的config命令或者直接編輯~/.gitconfig文件(若是沒有的話建立它)來爲本身打造獨一無二的Git。我建議直接編輯用戶目錄下得.gitconfig文件,拿我本地的文件爲例,一一爲你們解說,完整的文件內容以下:github

[user]web

name = Phoenix服務器

email = phoenixtoday@gmail.comapp

[alias]svn

co = checkout工具

ci = commit -a學習

st = statusui

br = branch

oneline = log --pretty=oneline --since='2 days ago'

onelog = log -p -1

[color]

status = auto

branch = auto

ui = auto

該文件主要包含三個部分的內容:

用戶基本信息:能夠設置你的名字和email,這樣在你提交代碼的時候就會顯示出你的名字

命令別名:這是.gitconfig文件中,我最喜歡的部分,它能夠大大減小你敲擊鍵盤的次數(俗話說優秀的程序員都很懶麼)。在該文件中,我將co設置爲checkout的別名,那麼下次我只要用'git co new_branch'就能夠切換到new_branch分支下了,簡潔而優雅;將ci設置爲commit -a的別名,-a選項表示我不須要將修改和刪除的文件經過'git add'命令來加入索引,這樣設置在使用'git ci -m"message"'這樣的命令時,至關於連續執行了'git add 被修改和刪除的文件'和'git commit -m"message"'兩條命令,再一次節省了咱們寶貴的時間;最酷的是最後兩行,後面的章節會一一介紹。Git提供許多優雅、人性化的選項,咱們若是再結合別名的設置,能夠發揮你最大的想象力,真的讓你本身的Git活起來

顏色:每次看diff時是否是挺痛苦的?那麼爲何不給咱們的Git加上顏色呢?只須要加上那三行,就可讓紅色和綠色的提示出如今你的控制檯中

Git靈動

如今來說講'git log','git stash','git formate-patch'三個命令的用法和技巧:

git log:不一樣於SVN,Git將代碼的歷史記錄所有在本地克隆了一份,因此這就使得'git log'這樣的命令使用起來很是的迅速,也是我最常使用的Git命令之一。在使用'git log'的時候,你能夠加入不少的後綴。'-p'表示查看修改的具體內容,例如'git log -p'它不但會打印出提交的時間、版本號、人員等,還會將具體的代碼修改部分打印出來;'-n'其中n表示一個數字,這表示打印出具體的幾個日誌,例如 'git -p -1'正如個人Git配置文件中設置的onelog別名的內容同樣,就表示打印出當前最新的一第二天志記錄及具體修改內容;'--since="時間/日期"','--until="時間/日期"'表示你但願查找某個日期段的日誌記錄,例如'git log --since="2 days ago" --until="1 hour ago"'就表示你但願查找兩天前到一小時前的日誌記錄,Git是足夠聰明的,它能夠將相似於'2 days ago'和'1 hour ago'這種表示時間的英語轉化爲具體的時間數字;有的時候,你不但願翻不少頁才能夠看到全部的日誌,你只但願看到簡短的說明,那麼Git爲你提供打印格式的定製'git --pretty=格式種類',其中格式種類有full、short、oneline等,例如'git log pretty=oneline'就會將每條代碼歷史記錄放在一行裏,看起來簡單明瞭

git stash:在第一篇中,我舉了一個使用branch解決緊急任務切換的問題,其實stash命令也能夠很好的解決這樣的問題。當你不想提交當前完成了一半的代碼,可是卻不得不修改一個緊急Bug,那麼使用'git stash'就能夠將你當前未提交到本地(和服務器)的代碼推入到Git的棧中,這時候你的工做區間和上一次提交的內容是徹底同樣的,因此你能夠放心的修 Bug,等到修完Bug,提交到服務器上後,再使用'git stash apply'將之前一半的工做應用回來。也許有的人會說,那我可不能夠屢次將未提交的代碼壓入到棧中?答案是能夠的。當你屢次使用'git stash'命令後,你的棧裏將充滿了未提交的代碼,這時候你會對將哪一個版本應用回來有些困惑,'git stash list'命令能夠將當前的Git棧信息打印出來,你只須要將找到對應的版本號,例如使用'git stash apply stash@{1}'就能夠將你指定版本號爲stash@{1}的工做取出來,當你將全部的棧都應用回來的時候,可使用'git stash clear'來將棧清空

git format-patch:當你想給一個開源項目(例如Rails)提交一段代碼的時候,或者你想給小組成員展現一段你並不想提交的代碼,那麼你仍是須要 patch的,Git的'format-patch'命令良好的支持了這個功能。我來基本描述一下使用這個命令的步驟和方法:第一,利用branch命令建立一個分支;第二,修改你的代碼;第三,在該分支上提交你的修改;第四,使用'git format-patch'命令來生成一個patch文件,例如:'git format-patch master --stdout > ~/Desktop/tmp.patch'就是將工做分支與master主幹的不一樣,存放在'~/Desktop'文件夾下,生成一個叫作 tmp.patch的文件(另外一種簡單的版本是利用diff命令,例如'git diff ..master > ~/Desktop/tmp.patch'),這樣就生成了patch文件。那麼別人就可使用'git apply'命令來應用patch,例如'git apply ~/Desktop/tmp.patch'就是將patch打在當前的工做分支上

  

 

Git親友團

Git的使用技巧還包括利用Git包含的和附加的一些強大工具,這些工具主要包括git svn、git citool、gitk和Git的自動提示腳本:

git svn:Git和SVN能夠很方便的集成在一塊兒,這就大大減小了從SVN向Git遷移的學習成本,這也是我特別建議你們首次接觸Git的使用方式。git svn是一個Git內置的工具,你安裝了Git也就安裝了它,譬如說大家團隊有一個SVN服務器,可是你想利用Git本地的一些強大特性,那麼你依然能夠安裝Git,使用Git的branch功能,只不過再更新代碼和提交代碼的時候,使用git svn命令便可。在這裏我簡單的講講最常使用和須要注意的兩個命令,其他的命令讀者能夠經過'git svn --help'來查看:'git svn rebase'命令取代了'svn update'用於將服務器代碼更新到本地;'git svn dcommit'取代了'svn ci',須要注意的是,本地必須用Git提交了代碼以後,再使用'git svn dcommit'。只須要這樣,你就能夠輕鬆地從SVN轉向Git了。

git citool:這是我我的使用率最頻繁的一個工具,上一篇文章也提到了,Git能夠本地提交代碼,那麼你天然能夠本地修改你的提交了,這個工具就是可視化界面,用於修改你本地的提交。只要在你的工做區間輸入'git citool',就會出現以下的界面

點擊查看原始尺寸

你能夠用它來提交代碼,能夠用它來將你本地的修改追加在上一次提交的代碼中,你還能夠用它來修改你上次提交的信息等等。這個工具能夠大大幫助你完成之前SVN不可能完成的任務

gitk:是一個查看主幹/分支狀況的工具,它主要用於觀察整個項目的分支情況,使用'gitk'命令就會出現一個圖形化界面供你查看,本篇就簡單的說一下,你們回去試試就知道了

Git 的自動提示腳本:它是Shawn O. Pearce爲了讓Git使用起來更方便而寫得Shell腳本,你能夠在http://gitweb.hawaga.org.uk/ 找到一個叫作gitcompletion的腳本,下載下來,並按照該腳本中指導的方式進行配置,你就具備了Git自動提示(敲入部分Git命令,再按 Tab鍵)的功能,並且有了這個腳本,你也能夠看到你當前工做在哪一個branch下。唯一的不足是,它只支持Linux、Unix、Mac操做系統(推薦你們都用Mac進行開發)

Git實戰─Git Hub

通過這麼長時間理論知識的薰陶,想必你們早已躍躍欲試了,那麼咱們在Git Hub上創建一個開源項目做爲實戰演習吧。Git Hub是全球最大的Git服務器供應商,每一個賬號有100M的無償使用空間,網址是:https://github.com/

首先咱們在Git Hub上建立一個賬號,按照上面指導的方法設置好你的認證信息(每次提交代碼都會須要這個認證信息)

而後,以下圖新建一個項目選擇Create a New Repository),名叫git usage

點擊查看原始尺寸

在服務器端,你能夠看到這個項目的信息,包括項目源代碼的URL,以下圖

在本地使用以下的命令,就能夠完成你的第一次提交了:

mkdir git-usage(建立項目目錄)    cd git-usage(進入項目目錄)   git init(Git初始化)   touch README(建立一個README文件)    git add README(增長該文件到索引)    git commit -m 'first commit'(本地提交)    git remote add origin git@github.com:phoenixtoday/git-usage.git(增長遠程服務器代碼庫地址)    git push origin master(將本地代碼提交到遠程服務器上)

總結

我所在的項目小組自從使用Git後,發現Git提供的種種特性大大提升了咱們的開發效率,在認識Git前咱們沒法想象一個版本控制工具可讓開發任務切換變得如此天然流暢。因此我強烈推薦你們使用Git,你付出的學習絕對物有所值

相關文章
相關標籤/搜索