前言
前面只是大概的介紹了一點基礎的東西,接下來會更加深入的去了解一下Git。
一、Git的工作區、暫存區和版本庫之間的區別和聯系
1)工作區
在PC中能看得到的創建的一個管理倉庫的目錄。比如目錄下GitTest里的文件(.git隱藏目錄版本庫除外)。或者以后需要再新建的目錄文件等等都屬於工作區范疇。

2)版本庫(repository)
工作區有一個隱藏目錄.git,這個不算工作區,而是Git的版本庫。
Git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有Git為我們自動創建的第一個分支master,以及指向master的一個
指針叫HEAD。
3)聯系
在初始化git版本庫之后會生成一個隱藏的文件 .git ,可以將該文件理解為git的版本庫 repository,而我們自己建立的項目文件夾即工作區 working directory ,
在.git 文件夾里面還有很多文件,其中有一個index 文件 就是暫存區也可以叫做 stage ,git還為我們自動生成了一個分支master以及指向該分支的指針head。

從圖中可以看出來respository包括分支master和stage, working diretory 可以理解為我們打開開發環境如eclipse,里面的內容即工作區的內容,在工作區里面
有的代碼以及配置文件等我們需要提交到版本庫里面,最終是到了分支master上面,暫存區只是一個臨時保存修改文件的地方。
前面講了我們把文件往Git版本庫里添加的時候,是分兩步執行的:
第一步是:用git add把文件添加進去,實際上就是把文件修改添加到暫存區;
第二步是:用git commit提交更改,實際上就是把暫存區的所有內容提交到當前分支。
因為我們創建Git版本庫時,Git自動為我們創建了唯一一個master分支,所以,現在,git commit就是往master分支上提交更改。
4)編寫一個Demo
我們在lance.txt再添加一行內容為eeeeee,接着在目錄下新建一個文件為fosun.txt 內容為test,我們先用命令 git status來查看下狀態,如下:

現在我們先使用git add . 命令把2個文件都添加到暫存區中,再使用git status來查看下狀態,如下:

接着我們可以使用git commit一次性提交到分支上,如下:

注意:當在工作去修改了文件或者新建了文件沒有加入到暫存區去時,使用git status顯示的是紅色的。加入到之后是綠色的了。
二、遠程倉庫
2.1、本地與遠程GitHub的配置
在了解之前,先注冊github賬號,由於你的本地Git倉庫和github倉庫之間的傳輸是通過SSH加密的,所以需要進行簡單的設置:
1)創建SSH Key。在用戶主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件,
如果有的話,直接跳過此如下命令,如果沒有的話,打開命令行,輸入如下命令:
ssh-keygen -t rsa –C “youremail@example.com”

id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。
2)登錄github,打開” settings”中的SSH Keys頁面,然后點擊“Add SSH Key”,填上任意title,在Key文本框里黏貼id_rsa.pub文件的內容。

然后

然后

點擊 Add Key,你就應該可以看到已經添加的key。

2.2、添加遠程庫
1)需求
我們已經在本地創建了一個Git倉庫后,又想在github創建一個Git倉庫,並且希望這兩個倉庫進行遠程同步,
這樣github的倉庫可以作為備份,又可以其他人通過該倉庫來協作。
2)首先,登錄github上,然后在右上角找到“create a new repo”創建一個新的倉庫。

然后

在Repository name填入GitTest,其他保持默認設置,點擊“Create repository”按鈕,就成功地創建了一個新的Git倉庫:

目前,在GitHub上的這個testgit倉庫還是空的,GitHub告訴我們,可以從這個倉庫克隆出新的倉庫,也可以把一個已有的本地倉庫與之關聯,
然后,把本地倉庫的內容推送到GitHub倉庫。
現在,我們根據GitHub的提示,在本地的GitTest倉庫下運行命令:
git remote add origin https://github.com/zyh2017/GitTest.git
git push -u origin master
把本地庫的內容推送到遠程,使用 git push命令,實際上是把當前分支master推送到遠程。
由於遠程庫是空的,我們第一次推送master分支時,加上了 –u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,
還會把本地的master分支和遠程的master分支關聯起來,在以后的推送或者拉取時就可以簡化命令。推送成功后,可以立刻在github頁面
中看到遠程庫的內容已經和本地一模一樣了,上面的要輸入github的用戶名和密碼如下所示:
從現在起,只要本地作了提交,就可以通過如下命令:
git push origin master
把本地master分支的最新修改推送到github上了,現在你就擁有了真正的分布式版本庫了。
2.3、從遠程庫克隆
上面我們了解了先有本地庫,后有遠程庫時候,如何關聯遠程庫。
現在我們想,假如遠程庫有新的內容了,我想克隆到本地來 如何克隆呢?
舉個簡單的例子:
1)首先,登錄github,創建一個新的倉庫GitTest2

結果:

現在,遠程庫已經准備好了,下一步是使用命令git clone克隆一個本地庫了。如下所示:
執行命令:
git clone https://github.com/zyh2017/GitTest2.git

結果:

喜歡就“推薦”哦!
https://cloud.tencent.com/developer/support-plan ”
