JB的git之旅-git介紹及GitHub配置教程

前序
本文面對的是以前沒有了解過git的同窗,內容以科普爲主~git

正文開始:

只要是互聯網公司,相信都會使用過svn,尤爲傳統行業,好比銀行;
反過來問,svn是什麼?度娘解釋:github

SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統;
就是用於多我的共同開發同一個項目,共用資源的目的;
複製代碼

那是否是就SVN作管理工具就夠了?答案很明顯,非也;

如今愈來愈多公司都拋棄svn,改用git

沒錯,git跟svn同樣是版本控制工具,那svn到底有什麼問題致使要用git?
web

先一句話介紹git:
git是一款免費的、開源的 分佈式版本管理控制系統(工具)

那git跟svn的區別在哪裏?

1)核心的區別
git是分佈式,svn是集中式 緩存

使用過svn的同窗都知道,是須要配置服務器地址的,這也說明svn必需要放到一個服務器上,全部操做都比較與服務器交互;
舉例:研發從svn服務器獲取最新版本的代碼,而後修改,修改完成再把代碼推送到svn服務器bash

那git呢?git是分佈式的,沒有中心服務器的概念,若是非要說,安裝git後,本身電腦就是一箇中心服務器,跟其餘同窗沒有任何關聯,即時本身電腦掛了,也不會影響到別人的工做,這點svn是作不到的,一旦svn掛了,全部用戶都收到牽連~服務器

2)聯網問題: 使用svn是須要聯網的,而git不須要聯網app

3)效率問題: svn下載速度比較慢,同一個代碼倉庫,git能夠幾十秒就能夠了,可是svn可能要幾分鐘或者更長ssh

4)工做流程: svn每次提交前都須要update,或者commit不會成功,若是出現衝突,就會被打斷提交操做,誰先快提交就萬事大吉,可是git沒問題問題,有衝突直接處理就好~分佈式

Git的四個組成部分

還有不少不少區別,這裏很少說明,可自行了解,整體來講,git更靈活,代碼通常都從git,若是文檔,能夠考慮使用svn~各有各優點~svn

Git文件的幾個狀態

按大類劃分,分爲兩種狀態:
Tracked(已跟蹤)和Untracked(未跟蹤)
依據是:該文件是否已加入版本控制?

流程簡述:

假設某個項目已加入版本控制系統
1.新建一個文件,該文件處於 Untracked 狀態;
2.經過git add命令添加到緩存區,此時文件處於Tracked狀態又或者說 
此時這個文件已經被版本控制系統所跟蹤,並且他處於Staged(暫存)狀態;
3.經過git commit命令把暫存區的文件提交提交到本地倉庫,此時文件 
處於Unmodified(未修改)狀態;
4.此時若是去編輯這個文件,文件又會變成Modified(修改)狀態;
複製代碼

git安裝

因爲用的是win0 ,因此Linux跟Mac都是來自git官網的哈~

Windows
度娘直接有,可是當時找了半天,所以特地分享下,須要的同窗拿走~ https://pan.baidu.com/s/1e-W5r6CY8lhfCsz75IJHsw         密碼:gyj9

安裝過程沒有啥特別的,一直next就行了~

安裝完畢後應該會有下面這幾個圖標,就說明安裝成功啦~

這3個工具,通常經常使用的是git bash跟git gui,
git gui是一個圖形界面的git項目管理工具,對於不想記命令的童鞋是一種福音~

Linux:
若是要在 Linux 上安裝預編譯好的 Git 二進制安裝包,能夠直接用系統提供的包管理工具。
在 Fedora 上用 yum 安裝:

$ yum install git-core

在 Ubuntu 這類 Debian 體系的系統上,能夠用 apt-get 安裝:
$ apt-get install git

Mac
在 Mac 上安裝 Git 有兩種方式。
最容易的當屬使用圖形化的 Git 安裝工具,下載地址在:

http://sourceforge.net/projects/git-osx-installer/

另外一種是經過 MacPorts (http://www.macports.org) 安裝。
若是已經裝好了 MacPorts,用下面的命令安裝 Git:

$ sudo port install git-core +svn +doc +bash_completion +gitweb

至此,git已經安裝完畢了~

GitHub

GitHub是什麼?

gitHub是一個面向開源及私有軟件項目的託管平臺,
由於只支持git 做爲惟一的版本庫格式進行託管
複製代碼

那GitHub跟git的關係有很明顯,一個是版本控制工具,一個是用git作版本控制的項目託管平臺;

GitHub的官網以下:https://github.com/
打開後自行註冊,不清楚的就找度娘吧,這裏不說明了~

註冊完畢後,首先是建立倉庫~

隨便輸入一個名稱,點擊create repository便可~

建立完畢後,會進入到倉庫界面,會顯示下面的內容,先不須要管,後面會用的上~

git跟github是怎麼通訊的?

本地Git倉庫和GitHub倉庫之間的傳輸是經過SSH加密傳輸的,
GitHub須要識別是不是你推送,GitHub只要知道了你的公鑰,就能夠確認只有你本身才能推送,因此須要配置ssh key~

ssh key怎麼獲取?
還記得安裝完後有一個Git bash軟件嗎?點擊它~

ssh key是存放在.ssh目錄的,那咱們用Git bash輸入命令建立ssh key:

$ ssh-keygen -t rsa -C "your_email@youremail.com"
//注意,雙引號裏面是你的郵箱。填你註冊github的郵箱就好了。按enter執行。
複製代碼

一路回車就行,密碼通常不用設置~

出現上圖,就說明建立成功了,直接cd .ssh進入文件夾,看看目錄下面有什麼?

有id_rsa和id_rsa.pub兩個文件,這兩個就是SSH Key的祕鑰對,
id_rsa是私鑰,不能泄露,id_rsa.pub是公鑰,能夠公開。

配置ssh: 在git bash 執行 cat id_rsa.pub,把輸出的內容copy出來,而後打開github網站,點擊右上角本身的圖標,點擊Setting->ssh key 頁面,點擊add ssh key~

title隨便寫,key把剛剛copy的id_rsa.pub內容copy進去就好了~

添加完成後,會看到剛剛添加的key,能夠添加多個key

驗證是否成功 再次打開git bash,輸入下面的命令:

ssh -T git@github.com
複製代碼

初次設置的話,會出現下面的結果,輸入yes就好了~

完了嗎?還沒呢~既然都已經打通了,爲何不提交一次記錄試試?

設置username和email 設置username和email,由於github每次commit都會記錄他們

git config --global user.name "your name"     //你的github登陸名
git config --global user.email "your_email@youremail.com"  //你的github郵箱
複製代碼

先把創庫clone下載,打開git bash,挑一個你想存放項目的目錄,好比在C盤新建一個test目錄,而後進入到該目錄下~

cd c:    //進入到C盤
mkdir test    //建立一個叫test的目錄
cd test       //進入到test目錄
複製代碼

注意,第一條git命令要來了~
倉庫地址在哪裏?打開github倉庫首頁,就能看到倉庫地址了~
選擇ssh,複製裏面的內容~

在git bash 輸入:

git clone 你的倉庫地址(就是上面copy的內容)
複製代碼

別覺得看到warn就覺得不正常了,只是提示着是個空目錄~

接下來就要本地建立文件,而後推進到服務端了,怎麼作?
還記得在github上建立完倉庫的那張圖嗎?趕忙翻翻,裏面之後說明~

手把手按照上圖操做就好了

echo "# jbtest" >> README.md    //建立README.md文件
 git add README.md              //把README.md文件添加到暫存區
 git commit -m 'first commit'   //添加指定文件到暫存區
 git push origin master         //上傳master分支到遠程倉庫
複製代碼

就這樣,從新刷新github的頁面,就能看到剛剛提交的內容啦~

這只是最簡單的,正常狀況還會涉及log查看,衝突處理,切換分支的概念,這裏不細說,度娘能拯救你,若是有必要,會新開一篇來詳細介紹~

git gui

也許有同窗說,記不住命令,可是仍是想用git怎麼辦?
Windows下提供Git gui軟件,就是爲了解決這個問題,讓咱們也有gui來模擬一次提交吧~

仍是剛剛的項目,打開git gui軟件~

由於咱們是已經存在的項目,選擇open existing repository打開剛剛的項目

打開後是這樣的~

本身先手動打開README.md文件,用記事本就能夠,隨便輸入點內容,點擊保存便可~
而後回到git gui上~

點擊下面的rescan按鈕,左上角的unstaged changes原來是沒有內容的,點擊後就會把剛剛修改的文件及內容展現出來,以下~

而後點擊rescan下的stage changed,點擊後,文件就會移動到下面綠色的staged changes;

而後在commit message下輸入內容,點擊sign off,這些內容就是會上傳的github的~

而後就點擊commit,再點擊push,會彈出一個框,由於目前只有master分支,直接點擊push便可~

直接是綠色提示success,都表明成功了,若是有衝突之類的,就會標紅而且把錯誤緣由說明,修改後再次重複下面的操做便可~

打開github,刷新本身的項目,就會看到剛剛提示的信息了~

到最後,再引出一個東西,gitlab,是一款基於Git的項目管理軟件,那跟github區別是?
GitLab擁有GitHub擁有的一切,但他擁有更多——讓團隊對它們的repositories擁有更多的控制,它的特點;
而gitlab的配置跟github是同樣的,這裏很少說明~

關於圖形git工具選擇:
Windows下推薦git 自帶的git gui

mac的話,能夠用SourceTree,
固然也支持Windows版本,官網下載地址:https://www.sourcetreeapp.com/

小結
本文主要介紹了git安裝及與github配置、svn跟git的差別,以及最後引出gitlab,
對於不喜歡用命令的同窗,Windows下能夠用git gui來簡化操做流程,Linux跟Mac貌似只能用命令了~但願能對各位起到幫助,多謝你們的支持~

相關文章
相關標籤/搜索