Git是一個開源的分佈式版本控制系統,能夠有效、高速的處理從很小到很是大的項目版本管理。html
Git 最初是由Linus Torvalds設計開發的,用於管理Linux內核開發。Git 是根據GNU通用公共許可證版本2的條款分發的自由/免費軟件,git
安裝參見:http://git-scm.com/github
GitHub是一個基於Git的遠程文件託管平臺(同GitCafe、BitBucket和GitLab等)。服務器
Git自己徹底能夠作到版本控制,但其全部內容以及版本記錄只能保存在本機,若是想要將文件內容以及版本記錄同時保存在遠程,則須要結合GitHub來使用。使用場景:app
其餘:分佈式
集中式:遠程服務器保存全部版本,用戶客戶端有某個版本
分佈式:遠程服務器保存全部版本,用戶客戶端有全部版本工具
Git在各行各業都須要用到,尚未Git以前,使用的最原始的版本控制,(相似咱們的畢業設計論文,須要修改N次)有顯著的缺點, 以下:fetch
- 多個文件,保留全部版本時,須要爲每一個版本保存一個文件。spa
- 協同操做,多人協同操做時,須要將文件打包發來發去。設計
- 容易丟失,被刪除就意味着永遠失去....(能夠選擇網盤)
爲了解決以上版本控制存在的問題,應運而生了一批版本控制工具:VSS、CVS、SVN、Git等,其中Git屬於絕對版主地位。
注意:
客戶端(本地):本地編寫內容以及版本記錄
服務端(網盤):將內容和版本記錄同時保存在遠程(無關緊要)
2.Git操做
命令: git init 生成一個隱藏的git文件 ls 查看路徑 git add . 把當前目錄的全部文件和文件夾加入到版本里。 git config --global user.email 'xx@live.com' 設置郵箱 git config --global user.name 'zbk' 設置用戶名 git commit -m '初次版本上線' 真實的加到版本里。在這以前要設置郵箱,用戶。 git add templates/index.html 單獨加個別的文件 git commit -m '添加什麼什麼功能' 描述。 git reset --hard (想回滾到的:commit值就是版本號) 回滾到原來的狀態。 git log 查看添加的版本記錄 git reflog 跳回到前面的版本號 git stash 把當前工做區全部修改過的內容存儲到「某個地方」,將工做區還原到當前版本爲修改過的狀態。 git stash pop 將第一個記錄從「某個地方」從新拿到工做區(可能有衝突) git stash list 查看「某個地方」存儲的全部記錄 git stash clear 清空「某個地方」 git stash apply 編號,指定編號記錄從「某個地方」從新拿工做區(可能有衝突) git stash drop 編號,刪除指定編號的記錄。 git status 建分支 git branch bug 建立分支 (master) git branch 查看總共有多少分支 git checkout bug 跳轉到名叫 「bug」的分支,切換以前把代碼提交一下。 git merge bug 將bug分支裏面的內容合併到 master的內容裏面。 git branch -d bug 刪除分支 bug git remote add 別名 https://github.com/..... git fetch 別名/master 獲取,下載到分支 git merge 別名/master 合併,下載到原數據 git push 別名 master 把當前的代碼推送到遠程master上 git clone 地址 克隆拿到代碼 git pull 別名 dev 從遠程地址拿到代碼。拉下來,下載到工做區 mkdir ls cd git init git remote add 別名 地址 gt pull 別名 master ls
3.git 小結:
小結: git管理大體分爲 2個區 4個狀態 兩區域分別爲: 工做區 版本庫 四個狀態分爲: 原內容 修改過的內容 暫存 分支 分支開始:git reset --soft 版本號 git reset head 文件 git check out文件 git reset --mix 版本號 產生衝突的就須要本身手動的去解決!!!! 在公司裏出現了緊急問題,通常都會在分支裏面去解決。 首先,建立修復bug的分支,那麼什麼是分支呢? master 不能修改的。 只能新建一個bug分支 bug 修復以後,合併到 master 看看以那個分支爲主,要合併到哪本身分析。