Git是什麼?linux
Git是目前世界上最早進的分佈式版本控制系統。工做原理 / 流程:git
若是沒有Git!github
- 不能多人並行修改服務器的同一個文件。
- 不能對文件的每一次提交的歷史記錄進行查閱,回退。
- 不能對團隊中的人進行權限控制
- 不能使用分支去進行多線做戰
SVN與Git的最主要的區別?chrome
SVN是集中式版本控制系統,版本庫是集中放在中央服務器的,而幹活的時候,用的都是本身的電腦,因此首先要從中央服務器那裏獲得最新的版本,而後幹活,幹完後,須要把本身作完的活推送到中央服務器。集中式版本控制系統是必須聯網才能工做,若是在局域網還能夠,帶寬夠大,速度夠快,若是在互聯網下,若是網速慢的話,就納悶了。最主要的問題是,若是服務器掛了,那麼子節點上的內容只是當前狀態,這種單點故障,想恢復之前的內容就很難了。shell
Git是分佈式版本控制系統,那麼它就沒有中央服務器的,每一個人的電腦就是一個完整的版本庫,這樣,工做的時候就不須要聯網了,由於版本都是在本身的電腦上。既然每一個人的電腦都有一個完整的版本庫,那多我的如何協做呢?好比說本身在電腦上改了文件A,其餘人也在電腦上改了文件A,這時,大家兩之間只需把各自的修改推送給對方,就能夠互相看到對方的修改了。並且每一個人的機器就是一整套版本庫,能夠直接去恢復服務器的故障。centos
安裝完成後能夠在開始菜單或者鼠標右鍵中看見Git logo,點擊Git Bash會出現命令窗口,則說明成功。ssh
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum -y install git-core
由於Git是分佈式版本控制系統,因此須要填寫用戶名和郵箱做爲一個標識。curl
注意:git config --global 參數,有了這個參數,表示你這臺機器上全部的Git倉庫都會使用這個配置。固然你也能夠對某個倉庫指定的不一樣的用戶名和郵箱。(針對某個項目不帶--global參數)分佈式
git config --global user.name Heaton git config --global user.email tzy70416450@163.com #查詢當前配置信息 git config --list #經過文件查看全局配置信息 cat ~/.gitconfig
什麼是版本庫?版本庫又名倉庫,英文名repository,你能夠簡單的理解一個目錄,這個目錄裏面的全部文件均可以被Git管理起來,每一個文件的修改,刪除,Git都能跟蹤,以便任什麼時候刻均可以追蹤歷史,或者在未來某個時刻還能夠將文件」還原」。簡單的理解,就是讓咱們的項目交給Git大管家來幫咱們管理,須要讓Git知道是哪一個項目。
而咱們的標識信息就在config文件下。
沒有局部標識就會使用全局標識,通常狀況下(推薦),使用全局標識就行了。
局部標識優先級大於全局標識。
cat .git/config git config user.name Heaton_1 git config user.email tzy70416450@163.com_1
在實際開發中,咱們經常會有不少開發分支,每一個小夥伴在本身的開發分支上作完了事情,就會將代碼提交到測試分支上面,由測試同窗去測試,修改問題後會將代碼合併到主分支上發佈。
固然有些公司還會有預發佈分支,修改bug分支,原理是同樣的,根據規範和喜愛來咯。
github是其中一種遠程倉庫,註冊帳號,建立倉庫就可使用了。
還有碼雲,gitlab等等遠程倉庫產品。
重複4.7.1操做
用戶1改變文件
用戶2改變文件
修改衝突的文件
若是未加入團隊,不是開發者,想提交一些代碼怎麼辦呢。github有遠程協做功能。
chrome --> Octotree
idea --> ignore