Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Git 維基 對(duì) Git 緣起講得比較清楚诈唬,包括和 Mercurial(hg)的關(guān)系。Mercurial vs. Git: How Are They Different? 也可以看看矢棚。
本文 以 Git 最新版 2.6.4 為例徙鱼。Git 命令參考手冊(cè) 和 GitHub Cheat Sheet 值得花時(shí)間瀏覽一下。Pro Git 2nd Edition (2014) 是本好書(shū)惭聂,原理講得到位窗声,免費(fèi)在線發(fā)布,有中文版辜纲。
本文以命令行使用方式的安裝配置為主笨觅,GUI 版的相對(duì)簡(jiǎn)單。
Linux 環(huán)境
源碼安裝 Book Pro Git Installing from Source
解決依賴
yum install curl-devel expat-devel gettext-devel \\ openssl-devel perl-devel zlib-devel
git 各個(gè)發(fā)布版本 @ GitHub
下載源碼:wget https://github.com/git/git/archive/v2.6.4.tar.gz
編譯安裝
tar -xzf git-2.6.4.tar.gz
cd git-2.6.4
make configure
./configure --prefix=/usr
sudo make all
sudo make install
- 如果碰到問(wèn)題:"Can't locate ExtUtils/MakeMaker.pm in @INC" during git build耕腾,執(zhí)行
yum install perl-devel
即可见剩。 - 注:因?yàn)?Python 2.4 依賴的問(wèn)題,doc, html, info 等形式的文檔沒(méi)有安裝扫俺。默認(rèn)linux下都會(huì)安裝git炮温,上文prefix配置會(huì)覆蓋原git。如果要保留原git牵舵,prefix 設(shè)置為 /usr/local 即可柒啤。
echo $PATH
/usr/local/go/bin:/usr/local/bin:/usr/bin:/usr/local/sbin
which git
/usr/bin/git
- 檢查版本
$ git --version
git version 2.6.4
- 附:yum 安裝
install the basic Git tools on Linux via a binary installer:
yum install git # 不過(guò),采用這種方式畸颅,只能安裝為:1.8.3.1担巩。
配置
git config
# 對(duì) git 進(jìn)行配置。
環(huán)境參數(shù)
$ cat /etc/centos-release
CentOS Linux release 7.1.1503 (Core)
Mac 環(huán)境
安裝
[ 命令行 git ]
OS X Yosemite (10.10.4) 上自帶的版本是 2.3.8没炒。如果 git 沒(méi)有安裝的涛癌,自 OS X Mavericks (10.9) 開(kāi)始,在終端(Terminal)上直接運(yùn)行 git,會(huì)提示自動(dòng)安裝 Xcode Command Line Tools拳话,這是最簡(jiǎn)單的方式先匪。
這樣安裝的 git 通常不是最新版,不過(guò)只要 git --version 版本在 2.0 以后的都可用弃衍,不是非得使用 git-scm Mac 最新版呀非。
注:git-scm 上的版本是由 Tim Harper 來(lái)維護(hù)的 git-osx-installer 安裝文件,當(dāng)前項(xiàng)目托管在 sorceforge 上镜盯,下載 dmg 安裝包后點(diǎn)擊即會(huì)安裝岸裙。目前最新版 2.6.3。GUI 客戶端 的選擇
GitHub Desktop 是一個(gè) git GUI 客戶端速缆,雖然她是為 GitHub 用戶所開(kāi)發(fā)降允,但你可以使用她連接任何 gitserver。界面簡(jiǎn)潔艺糜,同時(shí)支持 mac 和 windows剧董。Git Hub Desktop 的更多幫助。
配置
略破停。
Windows 環(huán)境
安裝
-
推薦 git-for-windows(Git Bash / Git CMD / Git GUI)
git-scm Win 最新版翅楼,github 上托管的所有版本,git-for-windows官網(wǎng)辱挥。源自 msysgit。國(guó)內(nèi)可能經(jīng)常無(wú)法從 github 下載边涕,可以訪問(wèn)國(guó)內(nèi)的 gitee 碼云晤碘;
Git Bash 和 *nix 風(fēng)格保持一致,對(duì)于熟悉 Linux 操作的用戶來(lái)說(shuō)很方便功蜓。
Git GUI 也是很有價(jià)值的园爷,其中 Find、Visualize History 功能是很有用的式撼。
除了 git-for-windows 的 git gui童社,其他 GUI 客戶端,比如 SourceTree(有中文界面)著隆、GitHub desktop 也值得推薦扰楼;
配置
使用 Git Bash 命令行工具進(jìn)行操作。
ssh config 配置弦赖,和 Linux 下配置方法相同
/etc/ssh/ssh_config ; system-wide file
/c/Users/admin/.ssh/config ; user-specific file
注:admin 是 Win8 下登錄用戶名。-
Git Bash 的亂碼問(wèn)題
ll浦辨,mkdir蹬竖,vim,rm,git log币厕,git commit列另,這些常用命令都可以正常顯示中文。
git status 時(shí)旦装,發(fā)現(xiàn) modified 出現(xiàn):
形如“idoc/A\347\231\273\350\256\260\350\207\252\345\212\251...”的文件名页衙,其實(shí)是“ idoc/A登記自助...”。
中文進(jìn)行quotepath.png git status 中文轉(zhuǎn)義亂碼的 解決方案
在 Git Bash 提示符下輸入:
git config --global core.quotepath false
core.quotepath 設(shè)為 fals e的話同辣,就不會(huì)對(duì) 0x80 以上的字符進(jìn)行quote拷姿。中文顯示正常。
參考
git config 配置文件
- 系統(tǒng)級(jí)文件 $(prefix)/etc/gitconfig
本文即 /usr/etc/gitconfig 文件旱函。
git config --system 指定只操作系統(tǒng)級(jí)文件响巢。初始不存在,若不存在則無(wú)影響棒妨。 - 用戶級(jí)文件 ~/.gitconfig
git config --global 指定只操作用戶級(jí)文件踪古。初始不存在,若不存在則無(wú)影響券腔。 - Repository 級(jí)文件 .git/config
--local 對(duì)寫(xiě)操作伏穆,則只寫(xiě)入 Repository 級(jí)文件(默認(rèn)行為);對(duì)讀操作纷纫,則只從 Repository 級(jí)文件讀枕扫。 - --file config-file 則指定 config-file。
- 注:如果不特別指定哪個(gè)配置文件辱魁,則依 system/global/local 順序讀取烟瞧,最后的值覆蓋前面的,多值的則合并染簇。
info 文件(work tree)
.git/info/refs
.git/objects/info/packs
2005-2015 十周年
- 10 Years of Git: An Interview with Git Creator Linus Torvalds @ Linux.com参滴;
- 10 Years of Git @ atlassian.com;
【注】
軟件版本的快速更新是萬(wàn)物互聯(lián)時(shí)代的顯著特征锻弓,故本文的知識(shí)有可能已經(jīng)過(guò)時(shí)砾赔,請(qǐng)注意及時(shí)下載安裝最新穩(wěn)定版本,充分享受這個(gè)時(shí)代對(duì)于我們的厚饋青灼。
本文有任何不妥之處暴心,請(qǐng)不吝指正。