Git基本命令 -- 建立Git專案

solenovex發表於2018-03-13

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

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

Git基本命令大致分這些, 這一部分只講建立專案這塊.

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

建立專案

1.開始新專案

git init 專案名:

通過這個命令git建立了一個資料夾叫做learn-git.

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

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

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

進入這個.git資料夾:

回到工作資料夾 (learn-git).

通過git status命令檢視git倉庫的狀態:

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

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

[這裡我使用vscode]

然後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 status檢視狀態:

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

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

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

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

執行命令後再看一下狀態:

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

我的預設編輯器是vi.

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

然後按esc, 輸入命令:wq 儲存並關閉vi. 就會回到原來的命令列.

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

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

然後再執行git status:

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

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

 

2.新增git到現有專案:

需要一個專案, 所以可以訪問這個有趣的網站: http://www.initializr.com/ 去生成一個專案:

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

然後點選Download it.

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

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

接下來, 進入這個目錄, 然後就準備開始把git新增到這個專案了.

使用git init命令, 這時不需要加上專案名引數了:

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

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

檢視以下狀態 git status:

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

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

git就會把所有的檔案都列出來, 因為這個點 . (period) 會把該專案下所有的檔案都遞迴的新增進去.

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

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

然後再看一下狀態 git status:

不出所料.

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

rm -fr .git :

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

 

參與Github專案.

先拿張老師的一個專案為例: https://github.com/geffzhang/opendotnet

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

fork 專案.

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

然後點選fork按鈕.

選擇我的使用者名稱.

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

隨後我要克隆這個專案(clone). 

在箭頭處複製該repository的地址, 然後開啟本地電腦的命令列, 輸入命令 git clone repository的地址 來進行clone.

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

可以看到, 專案較大, 進度很慢. 

等clone完之後, 進入該資料夾. 可以看到專案檔案了:

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

回到上層目錄檢視狀態: 

因為這是剛剛clone過來的專案, 所以它是最新的 update to date.

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

 

今天就寫這些.

這裡講了三種不同為專案新增git的方式.

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

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

相關文章