0.Git與GitHub的區別

git與github是當代軟件開發中最常用的軟件版本管理工具之一。他們之間名字相似,在功能上也有相似之處,但是在實際應用中,他們要起到的作用是不同的。

(1)git是一個需要下載安裝的軟件,它運行在每一位軟件開發人員自己的電腦上。

(2)github是一個網站,該網站已被微軟收購。

(3)git是一個本地軟件版本管理工具,它的倉儲是建立在本地電腦上的,所以它只能做單人開發時的版本管理

(4)如果團隊開發,並且要做軟件版本管理,只有git就力不從心了,因為我們需要團隊共享同1個倉儲,所以就需要一個共享的倉儲服務器。github就是起到了這樣一個共享的、唯一的、能實現版本控制的、具有服務器性質的遠程倉儲。

總之一句話,git必須與github搭配使用。當然也有github的替代平台碼雲提供了與github完全相同的功能以外,還有自己的特色功能,重點它是國內的服務器,我們用起來速度快。再多説一句,特朗普拉黑華為的時候,github也暫停了對華為的服務。

1、下載安裝Git

這個其實沒什麼好説的,百度git官網,下載與你電腦操作系統匹配的版本,下載之。然後一路next傻瓜安裝就完事了。

搭建類似GitHub本地git倉庫_搭建類似GitHub本地git倉庫

 

唯一需要説明的是在這一步,一定要選擇:Use Git from Git Bash only。如下圖。由於版本不同,可能選項不太一樣,但大致都是如此,選擇bash就ok了。

搭建類似GitHub本地git倉庫_git_02

安裝完後,只要在你電腦的任何一個目錄下拉右鍵,看到有如下圖的2個菜單選項就可以了。

搭建類似GitHub本地git倉庫_版本號_03

2、初始化項目

在項目目錄下拉右鍵,選擇“Git bash here”選項,進入到Git命令行工具窗口。然後輸入命令

git init

此命令將當前目錄變成一個Git可以管理的倉儲。執行完命令後,你在當前目錄下就能看到多了一個名字叫做“.git”的文件夾。注意,這個文件夾默認是隱藏的,你需要打開隱藏文件才能看到。

如下圖所示:

搭建類似GitHub本地git倉庫_版本號_04

3、配置當前git用户信息

git config --global user.name "LaoLi"    //配置用户名(全局配置)
git config --global user.email "laoli123@163.com" //配置電子郵箱(全局配置)

初次使用git,這兩項是必須配置的。

4、查看配置信息

如果日後想查看git的配置信息,可以使用以下命令

git config –-local -l  //查看倉庫級的 config,命令:
git config –-global -l  //查看全局級的 config,命令:
git config –-system -l  //查看系統級的 config,命令:
git config -l  //查看當前生效的配置,  命令:

5、把代碼提交到倉儲的工作區

git add 文件名   //把單個文件提交到git工作區

工作區並不是真正存放代碼的倉庫,我們可以把工作區看做是代碼的暫存區。上面的命令是把1個文件提交到工作區,如果要提交的項目很多,那麼一個一個的提交會非常麻煩,那麼可以使用下面的代碼,一次性把當前項目的所有修改的文件,統一提交到工作區。

git add ./

注意,add命令後面,不管是文件名還是 ./,都不需要用引號包住。

6、查看git管理的項目文件狀態。

git status

7、把代碼提交到倉儲的版本庫

倉儲區才是項目文件真正的家

git commit -m "這是本次提交到倉儲的代碼説明"

這個命令有2個特點:

1.git會一次性的把工作區中所有的文件,全部提交到倉儲中。

2.必須有-m的説明,-m是指令參數,它的值是為了之後項目管理中,便於查詢此次提交的內容是什麼。

有的時候,我們覺得每次代碼修改後,都需要先提交到工作區,然後才能commit到倉儲中,太麻煩了。我想直接提交到倉儲中。那麼你可以使用以下命令

git commit --all -m "這一次是把修改的代碼文件直接提交到倉儲的版本庫"

"--all"是參數,注意,是2個“-”,並且-m説明也不能少

8、查看倉儲提交日誌

git log

這個命令可以查看倉儲的版本庫中所有的版本提交歷史的日誌。它將以詳細的的方式來顯示,如下圖所示。其中紅色框住的是版本id號。

搭建類似GitHub本地git倉庫_github_05

當日志很多的時候,這種方式並不適合我們查看,所以我們需要一種精簡的日誌查看方式。命令如下

git log --oneline

運行效果如下圖所示:

搭建類似GitHub本地git倉庫_版本號_06

我們看到的結果,不僅信息量精簡了,連版本id都只取了版本號的前7位,但是這其實已經保證絕對不會重複了。所以後邊版本回退的時候,使用的版本號就是這個精簡版的版本號。

9、版本回退

git reset --hard Head~0  // 回退到0號日誌的版本

這裏的Head~0, 0其實就是一個日誌的索引,你可以使用1,2,3.。。。任意正整數,來代表你要回退到的版本號。0是離當前版本最近的上一個版本。

當git管理的項目版本非常多的時候,這麼使用索引來回退是非常不方便的,我們可能更希望使用版本的id號來回退。那麼可以使用如下命令:

git reset --hard 版本號

這裏説明下什麼是版本號,這個號是你在commit的時候,由git自動給你你此次提交的版本生成的唯一編號,完整的版本號非常長,這裏reset命令使用的版本號是精簡的id號,它就是我們使用git log --oneline時,看到的版本號。

這裏有個問題,就是如果我記不住項目的版本號,或者由於種種原因已經看不到某1個版本號,那麼可以使用下面的命令,來查看所有的版本號。

git reflog

這個命令實際看到的是所有對版本切換的操作記錄。這裏就有版本號。

10、創建子分支

首先我們要知道什麼是分支。我們啓動運行git的時候,默認的是主分支,也就是master分支。

創建子分支的命令如下:

git branch 分支名

這裏分支名可以是任意字符串。比如:git branch dev。

我們可以通過下面的命令來查看當前所有的分支

git  branch

11、切換分支

當我們的本地倉儲有多個分支之時,可以在不同的分支之間切換。命令如下:

git checkout 分支名

12、合併分支

項目開發到一定程序,需要把其他分支的代碼合併到主分支。

合併分支時,首先要回到master分支。

git checkout master

然後才能把其他子分支合併過來,比如我們合併dev分支提交的代碼。 

git merge dev

13、刪除分支

刪除分支時要注意:

1.master分支,也就是主分支是不能刪除的。

2.必須先回到master分支,才能刪除其他子分支。

刪除子分支命令如下:

git branck -d  分支名

 14、GitHub註冊

打開GitHub官網:https://github.com/,默認就是註冊的UI界面。如果不是,你也可以點擊左上角的 "sign up" 註冊。

搭建類似GitHub本地git倉庫_版本號_07

15、登錄GitHub

註冊完成後是默認為登錄狀態的。如果沒有,你也可以點擊第14步,所示圖片的右上角“sign in”來進行登錄。登錄UI界面如下:

 

搭建類似GitHub本地git倉庫_git_08

登錄完成後進入賬號主界面,如下:

搭建類似GitHub本地git倉庫_git_09

16、創建GitHub倉儲。

我們把GitHub上創建的倉儲叫遠程倉儲。創建倉儲的操作非常簡單。操作如圖所示:

搭建類似GitHub本地git倉庫_搭建類似GitHub本地git倉庫_10

然後你會看到如下界面

搭建類似GitHub本地git倉庫_github_11

填寫完了,點擊“Create repository”就創建了倉儲。你會看到類似下面的界面

搭建類似GitHub本地git倉庫_git_12

這裏最關鍵的就是記下這個倉儲的URL,這個URL將作為我們日後通過Git把本地代碼上傳到GitHub時的URL。

當然這個地址你不需要去記,你可以隨時登錄自己的GitHub賬號,然後通過上面的操作來查看。

到這裏,我們GitHub上的操作就暫時告一段落了。接下來,就是如何通過Git把代碼上傳到GitHub的指定倉儲,或者把指定倉儲中的代碼下拉到本地。

 17、通過Git把本地代碼上傳到GitHub指定倉儲

首先,你需要通過第16步中的操作,記下GitHub對應倉儲的URL。

然後,打開Git本地項目的bash窗口,在窗口中輸入如下命令:

git push  github遠程倉儲的URL  master

這個命令的關鍵詞是push,它是上傳代碼的命令。該命令的最後master,是分支的名字,這裏是主分支名字,表示我們把本地的代碼上傳到GitHub的倉儲的master分支。這裏的潛台詞就是,GitHub也是有分支這1概念的,而且也跟本地Git的分支相照應。

當你第一次上傳代碼的時候,git會彈出1個類似於登錄的對話框,讓我們輸入遠程倉儲對應的賬號和密碼。這很好理解,總不能隨便是個人就能上傳代碼吧。

恕我不能截圖,因為只要登錄一次,本地git就會記錄下來這個賬號密碼,之後再push的時候就不用反覆輸入了。

18、配置push命令的地址

如果每次push的時候,都要寫倉儲的URL,將是一件非常麻煩的事情。我們可以通過配置,在本地記錄下來這個地址,然後給它起個別名,之後再用到這個地址的時候,我們只需要使用別名就可以了。配置的命令是:

git remote add  [別名]  倉儲URL

例如下圖,我就給遠程倉儲的URL起了個別名AsLifeProj

搭建類似GitHub本地git倉庫_git_13

實際上,這個命令最終是往.git目錄下的config文件裏寫下了如下一些信息。

搭建類似GitHub本地git倉庫_git_14

這個文件是純文本文件,用記事本打開就可以看到源碼。

這個配置了以後,我們再次push代碼,就可以使用這個別名了,例如:

git push AsLifeProj master

需要注意的是,在第一次push的時候,系統會讓我們輸入用户名和密碼,如下圖所示:

 

搭建類似GitHub本地git倉庫_git_15

  這裏輸入你的github賬號和密碼就可以了。以後push就都不用輸入了 

19、把GitHub倉儲中的項目代碼下拉到本地

下拉也就是下載的意思,或者叫同步也行。這個操作使用的命令是pull,它的用法非常類似於push命令,格式如下:

git pull [遠程倉儲URL]  [分支名]

如果你有上一步的配置別名,pull命令的遠程倉儲URL也可以使用別名。