Git是目前世界上最早進的分佈式版本控制系統(沒有之一)。開始建立了話題學習,也乘着這個興頭開始學習起來了git。公司一直在用git但是隻知其一;不知其二,花了個時間大體學習了一番!git
爲何要學gitgithub
git與github,git與svn服務器
經常使用命令網絡
很多小白有這個疑問,當初用svn插件用的66的爲何要git,命令行一點都玩不轉啊。做爲一個專業的開發人員,我發現兩點:1.通常用命令解決的事情都很高大上能夠泡妹,看上去就很膩害;2.隨大流 :強大的社區和使用者是很大的優點,有不少教程、工具。分佈式
首先不少人搞不清git與github的區別。git是一個版本管理工具,github是全球最大的同性交友平臺。說到github不得不安利一下:(感謝知乎原文)svn
Repository即項目工具
Fork也就是受權拷貝學習
Branch分支spa
Pull Request插件
SVN的特色是簡單,只是須要一個放代碼的地方時用是OK的。 Git的特色版本控制能夠不依賴網絡作任何事情,對分支和合並有更好的支持。
工做區:就是電腦裏能看到的目錄;
版本庫repository:工做區有一個隱藏目錄.git,這個不算工做區,而是Git的版本庫;
暫存區stage:Git的版本庫裏存了不少東西,其中最重要的就是稱爲stage(或者叫index)的暫存區,用git add把文件添加進去,實際上就是把文件修改添加到暫存區;
分支branch:Git爲咱們自動建立的第一個分支master,以及指向master的一個指針叫HEAD,用git commit提交更改,實際上就是把暫存區的全部內容提交到當前分支;
遠程倉庫remote:好比說github或者自定義git服務器。
已有遠程倉庫和非git項目:把項目init成git項目;git remote add origin添加遠程倉庫;git push -u origin master首次提交
已有遠程倉庫和git項目:把git項目添加一個遠程倉庫;切換遠程倉庫首次提交
無遠程倉庫:先建立遠程倉庫
git reset --hard **命令既能夠回退版本,也能夠把暫存區的修改回退到工做區 git log查看修改版本 git diff HEAD --**查看不一樣 git checkout --**文件回到最近一次提交狀態
git branch **建立 git checkout **切換 git checkout -b **建立並切換 git branch -b **刪除
git merge **