2017-02-15-Git.md
Git 的前世今生
這個(gè)要從開源運(yùn)動(dòng)說起患整,1991年Linus創(chuàng)立了開源的Linux 勺择。
很多人參與Linus的開發(fā),但是代碼一直不好管理贰锁。
開源精神不乏有梁山好漢的氣息,有人試圖破解正在使用的BitKeeper正在用的版本系統(tǒng)滤蝠,結(jié)果被發(fā)現(xiàn)了豌熄,要收回Linux的免費(fèi)使用權(quán)。
一周之后物咳, Git誕生了锣险。
2008 年GitHub網(wǎng)址上線,無數(shù)開源項(xiàng)目遷移到GitHub。
Git是什么芯肤?
Git 是一款分布式的版本管理軟件巷折,適合管理二進(jìn)制文件,就是適合 代碼 文檔什么之類崖咨。
什么是分布式锻拘?
- 這就要從svn的集中式倉庫說起,集中式好比一個(gè)圖書館击蹲,你從里面拿一本圖書出來修改署拟,在放回去,期間只有你能使用歌豺。而且必須要聯(lián)網(wǎng)推穷,如果服務(wù)器死機(jī)資料還可能丟失。
- 分布式:任何一臺(tái)都可以當(dāng)主機(jī)类咧,而且可以吧數(shù)據(jù)拷貝到任何一臺(tái)電腦馒铃,離線操作『弁铮可以分模塊開發(fā)骗露,完成好之后,提交到 GitHub 遠(yuǎn)程倉庫血巍,和自己搭建服務(wù)器開發(fā)萧锉。
為什么要用版本管理倉庫?
- 所有人都需要版本管理述寡,一個(gè)PPT柿隙,老板不滿意要你修改,“另存為1”鲫凶,你加班到半夜禀崖,又有新的思路,“另存為2”螟炫,第二天說是要增加新內(nèi)容波附,好把,再“另存為3"...
這樣麻不麻煩昼钻?有Git就不一樣了掸屡。 - Git是世界上最好的分布式版本管理倉庫,沒有之一然评〗霾疲可以讓你查看歷史版本,版本之間輕松穿梭碗淌。
- 這么酷版本管理軟件盏求,干嘛不學(xué)抖锥?
安裝配置Git
Mac 安裝 Git
- 安裝 Xcode 的時(shí)候默認(rèn)安裝
- 或者h(yuǎn)omebrew安裝
Win 安裝 Git
地址:https://git-for-windows.github.io
Liunx
這個(gè)大神請(qǐng)繞道,還沒用過Liunx 碎罚。
- 安裝完成后進(jìn)行配置
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
常用命令
序列 | 命令 | 作用 | 例子 |
---|---|---|---|
1 | git init |
托管 | |
2 | git add |
添加到暫存區(qū) | |
3 | git commit |
添加到版本庫 | |
4 | git status |
察看 | |
5 | git diff |
對(duì)比 | |
6 | git log |
查看歷史版本 | |
7 | git reset --hard (版本號(hào)) ``HEAD |
回到某版本 | |
8 | git reflog |
查看版本編號(hào) | |
9 | git checkout -- file |
撤銷工作區(qū) | |
10 | git rest HEAD file |
撤銷暫存區(qū) | |
11 | git remote add origin git@github.com:youname/lerarngit.git |
添加遠(yuǎn)程倉庫 | |
12 | git push -u origin master |
推送所有內(nèi)容 | |
13 | git push oringin master |
推送 | |
14 | git clone |
克隆 | |
15 | git checkout -b |
創(chuàng)建并切換分支 | |
16 |
git branch <name> |
創(chuàng)建分支 | |
17 | git checkout <name> |
切換分支 | |
18 | git merge <name> |
合并某分支到當(dāng)前分支 | |
19 | git branch -d <name> |
刪除分支 | |
20 | git tag |
打標(biāo)簽 | |
21 | git stash |
隱藏工作區(qū) | |
22 | git stash pop |
回到工作現(xiàn)場 | |
23 | git push 本地分支:遠(yuǎn)程分支 |
本地分支必須存在 | |
24 | git checkout <file name> |
從遠(yuǎn)程庫下載文件磅废,(本地文件已刪除的情況下) | |
25 | git config --global color.ui true |
配置git,使其顯示顏色 | |
26 | git config --global alias.縮寫 命令名字 |
這樣可以為命令配置自己想要的縮寫 |
- Git 是什么荆烈?
Git 是一款分布式的版本管理軟件还蹲,適合管理二進(jìn)制文件,就是適合 代碼 文檔什么之類耙考。 - 為什么要學(xué)Git谜喊?
這么酷版本管理軟件,干嘛不學(xué)倦始? - 寫一個(gè) Git 自動(dòng)忽略倉庫
因?yàn)橛泻芏辔募?huì)產(chǎn)出垃圾文件斗遏,你git status
時(shí)看到會(huì)很討厭,git提供了解決方案鞋邑,創(chuàng)建一個(gè)
.gitignore
文件诵次,在https://github.com/github/gitignore瀏覽配置文件。
版本回退
工作區(qū) 枚碗、暫存區(qū)
遠(yuǎn)程庫 GitHub
- 2008年出現(xiàn)了GITHub逾一,這使開源或這社會(huì)化編程變得更加容易。
可以在GitHub上面fork自己感興趣的開源項(xiàng)目肮雨,或這大神遵堵。
也可以把自己的開源項(xiàng)目托管在GitHub上。
分支
branch
分支是git里邊的一大特色怨规。
可以通過分支的特性保證原來的版本繼續(xù)運(yùn)行陌宿,和新想法的繼續(xù)開發(fā)。
git branch
查看分支
git checkout <name>
切換分支
git checkout -b <name>
和合計(jì):創(chuàng)建并切換分支
git merge <name>
合并某分支到當(dāng)前分支
git branch -d <name>
和合計(jì): 刪除分支
解決沖突
通過手動(dòng)的方式解決沖突波丰。
或者······
結(jié)語
我是先使用GitHub才知道git版本管理的壳坪,
發(fā)現(xiàn)了這么好用的git管理倉庫,
拖拖拉拉學(xué)了好久才會(huì)掰烟。
秉承 “ 教是最好的學(xué) ” 概念爽蝴,寫的學(xué)習(xí)筆記,
不足之處纫骑,大家多多包涵蝎亚。
參考資料
- 廖雪峰 - Git教程
- Git的官方網(wǎng)址: http://git-scm.com
- 《GitHub 入門與實(shí)踐》- 豆瓣
CHANGELOG
170215 創(chuàng)建
170622 添加背景 參考資料
170701 添加縮寫設(shè)置