使用Github也有一年的時間了,以前一直都是使用的Github客戶端,對提交,更新,克隆,合併,分支有必定的瞭解和實踐。一直都想試試命令行的形式,可是感受可能桌面版的方便就沒有作。html
但是Github客戶端是在線安裝,每次臺式電腦都沒有安裝成功,致使平時不能提交代碼管理,都是在筆記本上完成的。因此狠下心來玩玩Git命令模式。安裝了Git事後出現了Git Bash 和GIT GUI;搞了一下午都沒有提交成功。不知道哪裏出了問題。晚上來試試了Git Bash 實驗成功了。實驗室的代碼管理也在使用SVN,因此對比一下吧。前端
SVN先說集中式版本控制系統,版本庫是集中存放在中央服務器的,而幹活的時候,用的都是本身的電腦,因此要先從中央服務器取得最新的版本,而後開始幹活,幹完活了,再把本身的活推送給中央服務器。中央服務器就比如是一個圖書館,你要改一本書,必須先從圖書館借出來,而後回到家本身改,改完了,再放回圖書館。git
集中式版本控制系統最大的毛病就是必須聯網才能工做,若是在局域網內還好,帶寬夠大,速度夠快,可若是在互聯網上,遇到網速慢的話,可能提交一個10M的文件就須要5分鐘,這還不得把人給憋死啊。github
那分佈式版本控制系統與集中式版本控制系統有何不一樣呢?首先,分佈式版本控制系統根本沒有「中央服務器」,每一個人的電腦上都是一個完整的版本庫,這樣,你工做的時候,就不須要聯網了,由於版本庫就在你本身的電腦上。既然每一個人電腦上都有一個完整的版本庫,那多我的如何協做呢?比方說你在本身電腦上改了文件A,你的同事也在他的電腦上改了文件A,這時,大家倆之間只需把各自的修改推送給對方,就能夠互相看到對方的修改了。安全
和集中式版本控制系統相比,分佈式版本控制系統的安全性要高不少,由於每一個人電腦裏都有完整的版本庫,某一我的的電腦壞掉了沒關係,隨便從其餘人那裏複製一個就能夠了。而集中式版本控制系統的中央服務器要是出了問題,全部人都無法幹活了。bash
在實際使用分佈式版本控制系統的時候,其實不多在兩人之間的電腦上推送版本庫的修改,由於可能大家倆不在一個局域網內,兩臺電腦互相訪問不了,也可能今天你的同事病了,他的電腦壓根沒有開機。所以,分佈式版本控制系統一般也有一臺充當「中央服務器」的電腦,但這個服務器的做用僅僅是用來方便「交換」你們的修改,沒有它你們也同樣幹活,只是交換修改不方便而已。服務器
固然,Git的優點不單是沒必要聯網這麼簡單,後面咱們還會看到Git極其強大的分支管理,把SVN等遠遠拋在了後面。架構
CVS做爲最先的開源並且免費的集中式版本控制系統,直到如今還有很多人在用。因爲CVS自身設計的問題,會形成提交文件不完整,版本庫莫名其妙損壞的狀況。一樣是開源並且免費的SVN修正了CVS的一些穩定性問題,是目前用得最多的集中式版本庫控制系統。除了免費的外,還有收費的集中式版本控制系統,好比IBM的ClearCase(之前是Rational公司的,被IBM收購了),特色是安裝比Windows還大,運行比蝸牛還慢,能用ClearCase的通常是世界500強,他們有個共同的特色是財大氣粗,或者人傻錢多。分佈式
微軟本身也有一個集中式版本控制系統叫VSS,集成在Visual Studio中。因爲其反人類的設計,連微軟本身都很差意思用了。分佈式版本控制系統除了Git以及促使Git誕生的BitKeeper外,還有相似Git的Mercurial和Bazaar等。這些分佈式版本控制系統各有特色,但最快、最簡單也最流行的依然是Git!post
按照這個流程來走:
1.建立一個倉庫,後面要用到產生的SSH地址
2.安裝Git
3.SSH key我去作的時候已經有了,多是以前GIT bash也配置過。
4.上傳本地項目到github
4-1 建立一個本地項目
我這建立了幾個空文件夾和一個文件及一個項目配置文件,好多前端項目都這樣搭架構,我也追隨潮流哈。
4-2 創建本地倉庫
再來複習一下建立新倉庫的指令:
git init //把這個目錄變成Git能夠管理的倉庫 git add README.md //文件添加到倉庫 git add . //不但能夠跟單一文件,還能夠跟通配符,更能夠跟目錄。一個點就把當前目錄下全部未追蹤的文件所有add了 git commit -m "first commit" //把文件提交到倉庫 git remote add origin git@github.com:wangjiax9/practice.git //關聯遠程倉庫 git push -u origin master //把本地庫的全部內容推送到遠程庫上
首先,進入到beautifulDay項目目錄,還記得建立倉庫成功後的那個頁面吧,指令都在呢。
而後執行指令:git init
初始化成功後你會發現項目裏多了一個隱藏文件夾.git
這個目錄是Git用來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄裏面的文件,否則改亂了,就把Git倉庫給破壞了。
接着,將全部文件添加到倉庫
執行指令:git add .
而後,把文件提交到倉庫,雙引號內是提交註釋。
執行指令:git commit -m "提交文件"
如此本地倉庫創建好了。
4-3 關聯github倉庫
到github beautifulDay倉庫複製倉庫地址
而後執行指令:git remote add origin git@github.com:wangjiax9/beautifulDay.git
4-4 上傳本地代碼
執行指令:git push -u origin master
1)敲一個:yes, 而後回車
到此,本地代碼已經推送到github倉庫了,咱們如今去githubt倉庫看看。
咦!奇怪了,個人目錄呢?這個坑忽然冒出來是否是印象很深入呢~
注意咯:git是不能管理空的文件夾的,文件夾裏必須有文件才能add
好,咱們來試一下,我在examples裏新建了一個test1.html文件
執行指令添加文件->提交文件->推送文件
git add .
git commit -m "提交test1.html"
git push -u origin master
而後刷新一個github,你會看到,examples文件夾出來了。
打開examples文件夾,test1.html也在裏面。
本機的git_test試驗結果:
實際代碼提交試驗:不過每次有輸入密碼和帳號,應該能夠默認設置。
關於Git GUI的在繼續試驗.....
如今GUI也能夠實現建立倉庫和提交代碼了
之前選位置貌似應該爲Arbitrary Location. 優化的是把帳號和密碼保存起來!
參考:Git Gui for Windows的建庫、克隆(clone)、上傳(push)、下載(pull)、合併
整個流程和 github入門到上傳本地項目 差很少!