天天看點

Git基本指令 -- 建立Git項目建立項目

在這裡下載下傳git:  https://git-scm.com/

安裝的時候, 如果是windows系統的話, 可以勾選unix的指令行工具, 這樣在windows指令行下會多出很多指令, 例如ls.

Git基本指令大緻分這些, 這一部分隻講建立項目這塊.

  1. 建立git項目
  2. 基本工作流程 (Workflow)
  3. 檔案相關操作
  4. 曆史和别名
  5. 忽略檔案 (Ignoring)

建立項目

1.開始新項目

git init 項目名:

Git基本指令 -- 建立Git項目建立項目

通過這個指令git建立了一個檔案夾叫做learn-git.

進入這個目錄, 執行ls指令, 不會看到任何檔案:

Git基本指令 -- 建立Git項目建立項目

但是如果執行ls -al指令, 就可以看見以.開頭的檔案了:

Git基本指令 -- 建立Git項目建立項目

這時就可以看到一個.git檔案夾了. git的倉庫就在這.

進入這個.git檔案夾:

Git基本指令 -- 建立Git項目建立項目

回到工作檔案夾 (learn-git).

通過git status指令檢視git倉庫的狀态:

Git基本指令 -- 建立Git項目建立項目

可以看到, 目前是在master分支上, master分支是git的預設分支.

目前還沒有任何送出(commit), 也沒有任何東西需要commit, 因為我還沒有建立任何檔案, 那麼就開始建立檔案吧.

[這裡我使用vscode]

Git基本指令 -- 建立Git項目建立項目

然後vscode會建立一個lorem.txt檔案, 并打開它.

貼進去一些文字:

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.      

如果沒有自動換行顯示的話, 可以按opt+z:

Git基本指令 -- 建立Git項目建立項目

回到指令行, 再次輸入git status檢視狀态:

這時我們看到了一些變化:

Git基本指令 -- 建立Git項目建立項目

寫到是有個檔案未被追蹤 lorem.txt.

我需要做的就是把這個檔案添加到git index或者git staging 區.

這時就使用這個指令: git add lorem.txt.

執行指令後再看一下狀态:

Git基本指令 -- 建立Git項目建立項目

這時寫到, 有變化需要被送出(commit, 以後說英文吧), 這就是說lorem.txt這個新檔案現在處于git的staging區, 等待被commit, 還沒有被commit. 我可以移除這個檔案, 并且不會有git 倉庫(repository)有任何影響. 不過現在我還是想送出它, 是以執行 git commit指令, 如果不帶任何參數的話, git将打開預設的編輯器:

Git基本指令 -- 建立Git項目建立項目

我的預設編輯器是vi.

vi的操作是, 輸入i, 然後進入insert模式, 就可以輸入文字了:

Git基本指令 -- 建立Git項目建立項目

然後按esc, 輸入指令:wq 儲存并關閉vi. 就會回到原來的指令行.

Git基本指令 -- 建立Git項目建立項目

這裡顯示了剛才我在git commit時輸入的文字, 但是換行沒有了, 實際上還有的, 隻不過是這裡沒顯示罷了.

還有這個root-commit表示, 這是這個repository的第一個commit.

然後再執行git status:

Git基本指令 -- 建立Git項目建立項目

寫到沒有需要commit的東西, 工作樹是幹淨的.

這時lorem.txt已經進入了git respository. 這個變化也成了git commit曆史的一部分.

2.添加git到現有項目:

需要一個項目, 是以可以通路這個有趣的網站: 

http://www.initializr.com/

 去生成一個項目:

Git基本指令 -- 建立Git項目建立項目

把這些都勾選上, 這樣可以多一些檔案.

然後點選Download it.

下載下傳後解壓縮該檔案, 使用unzip指令:

Git基本指令 -- 建立Git項目建立項目

然後會出現一個initializr目錄, 我把這個目錄改一下名:

Git基本指令 -- 建立Git項目建立項目

接下來, 進入這個目錄, 然後就準備開始把git添加到這個項目了.

Git基本指令 -- 建立Git項目建立項目

使用git init指令, 這時不需要加上項目名參數了:

Git基本指令 -- 建立Git項目建立項目

git就會初始化一個新的repository, 并把目前目錄作為working directory 工作目錄.

這時就可以看到.git目錄了:

Git基本指令 -- 建立Git項目建立項目

檢視以下狀态 git status:

Git基本指令 -- 建立Git項目建立項目

目前是在master分支, 沒有任何commit, 并且有很多未被追蹤的檔案.

為了把所有這些檔案一次性添加到git staging (臨時)區和git index (索引), 那就使用指令: git add . 注意這裡還有一個點.

Git基本指令 -- 建立Git項目建立項目

git就會把所有的檔案都列出來, 因為這個點 . (period) 會把該項目下所有的檔案都遞歸的添加進去.

接下來就是git commit -m "需要寫的文字可以寫在這裡": 這次我是在行内輸入的文字, 加參數-m, 然後文字寫在雙引号内:

Git基本指令 -- 建立Git項目建立項目

這幾次指令中還可以看到圓圈裡面的文字, 就照着做就行, 進行使用者名和郵件的全局配置.

然後再看一下狀态 git status:

Git基本指令 -- 建立Git項目建立項目

不出所料.

目前呢, 這個項目/目錄是這個git repository的一部分, 之是以稱這個working directory是git repository的一部分, 這是因為它下面有個.git目錄. 如果把這個目錄删除了, 那麼它就不再被git所管理了. 下面就這麼做一下:

rm -fr .git :

Git基本指令 -- 建立Git項目建立項目

嗯 git status表示這不是一個git repository.

參與Github項目.

先拿張老師的一個項目為例: 

https://github.com/geffzhang/opendotnet

肯定是需要github賬戶并登陸的.

fork 項目.

Git基本指令 -- 建立Git項目建立項目

這裡, 登陸後, 右上角顯示的是我的賬戶的頭像. 左邊是該repository的使用者以及目前repository的名字.

然後點選fork按鈕.

Git基本指令 -- 建立Git項目建立項目

選擇我的使用者名.

Git基本指令 -- 建立Git項目建立項目

然後, 我就把張老師的項目複制到我的使用者名下了,  可以看到左上角是我的使用者名, repository名字不變, 還有一個注釋, 寫的是forked的from原來使用者.

随後我要克隆這個項目(clone). 

Git基本指令 -- 建立Git項目建立項目

在箭頭處複制該repository的位址, 然後打開本地電腦的指令行, 輸入指令 git clone repository的位址 來進行clone.

(這裡我換了一個項目進行fork, 因為上面這個項目太大了):

Git基本指令 -- 建立Git項目建立項目

可以看到, 項目較大, 進度很慢. 

等clone完之後, 進入該檔案夾. 可以看到項目檔案了:

Git基本指令 -- 建立Git項目建立項目
Git基本指令 -- 建立Git項目建立項目

可以看到.git目錄, 裡面有檔案:

Git基本指令 -- 建立Git項目建立項目

回到上層目錄檢視狀态: 

Git基本指令 -- 建立Git項目建立項目

因為這是剛剛clone過來的項目, 是以它是最新的 update to date.

裡面的origin 是對這個github repository的遠端的引用, /master表示是在這個遠端repository的master分支上.

今天就寫這些.

這裡講了三種不同為項目添加git的方式.

使用到了幾個最常用的指令:

git init, git add, git commit, git status, git clone.

下面是我的關于ASP.NET Core Web API相關技術的公衆号--草根專欄:

Git基本指令 -- 建立Git項目建立項目