Git 教程 - 初始化本地倉庫
我們將在本教程中建立我們的第一個 git 專案。
你可以在 C
盤建立一個資料夾 Git,但此 C:\Git
資料夾絕對不是必需的步驟,只是我個人習慣將所有的本地倉庫該資料夾中。
然後,我們在 C:\Git
資料夾中建立一個 GitLearn
新資料夾,這將是我們在本教程中演示用的專案資料夾。
我們可以用 git init
在這個資料夾初始化空的 git 倉庫,
$ git init
然後我們在 git bash 中會看到成功的初始化確認資訊。
$ git init
Initialized empty Git repository in C:/Git/GitLearn/.git/
git status
在我們開始在倉庫中新增檔案之前,我們可以用 git status
來獲取倉庫的當前狀態。
$ git status
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
的確,倉庫仍然是空的,它還沒有任何的提交。
那麼我們可以在這個資料夾中新增一些檔案,比如新建一個 test1.txt
檔案並且把下面的內容加入到檔案中,
This is my first Git repository.
如果再次用 git status
檢查,將會得到
$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
test1.txt
nothing added to commit but untracked files present (use "git add" to track)
新檔案顯示在未跟蹤檔案列表中的狀態資訊中。如果我們不新增和提交它們,Git 就不會跟蹤未跟蹤的檔案。
我們首先需要使用 git add
命令將它們新增到 staging
區域,也就是暫存區。
git add test1.txt
現在,再次用 git status
來查詢最新的工作區狀態。
$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: test1.txt
新增的檔案現在位於暫存區中並等待提交。你現在可以應該使用 git commit
命令將新的在暫存區的檔案 test1.txt
提交到倉庫中。
$ git commit -m "the first commit. add test1.txt to the repository"
[master (root-commit) 15322c9] the first commit. add test1.txt to the repository
1 file changed, 1 insertion(+)
create mode 100644 test1.txt
這時如果你檢查工作區的狀態,將會看到乾淨的工作樹資訊,沒有檔案有變化或未被跟蹤。
$ git status
On branch master
nothing to commit, working tree clean
如果你要獲取提交歷史記錄的日誌記錄資訊,可以使用 git log
來檢索已經提交的日誌。
$ git log
commit 15322c93a528af85dbba478a77b93cb6477698cb
Author: Your Name <yourname@email.com>
Date: Wed Jul 25 00:14:49 2018 +0200
the first commit. add test1.txt to the repository
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn