Git 教程(2):Git 的基本操作
建立新倉庫
“版本庫”也叫做“倉庫”,英文名 repository ,可以理解成一個目錄,放在這個目錄下的所有檔案都可以用 Git 進行管理。
首先要建立一個目錄,把需要管理的檔案放進去,然後在此目錄下開啟 Git Bash。對目錄進行初始化,把它變成一個倉庫:
$ git init Initialized empty Git repository in D:/test/.git/
這樣,一個新的倉庫就建好了。目錄下會出現一個 .git
資料夾,是 Git 的管理檔案,不要隨意修改裡面的檔案。

Git
新增和提交檔案
先說本地倉庫的結構,分為 3 部分:工作區,暫存區和 HEAD。簡單畫了個圖示意下:

示意圖
工作區:即我們的工作目錄,存放我們的工作檔案;
暫存區:快取區域,臨時儲存我們的的改動,暫時存放需要提交的檔案;
HEAD:指向我們最近一次提交的結果;
新增指定檔案到暫存區;
$ git add <filename>
新增工作區所有檔案到暫存區;
$ git add .
提交檔案:
$ git commit -m "test" [master (root-commit) 950f834] test 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test.txt
$ git commit -m "xxx"
:該命令將暫存區所有檔案一次性提交到分支,“xxx”部分可以寫上對本次提交的說明。
每修改一次檔案,我們都可以把修改後的檔案新增到暫存區,然後提交到倉庫中,記錄下我們的每次修改。
撤銷修改
如果修改錯了檔案,想要把檔案恢復到本次修改前提交過的某個版本,可以使用 git reset --hard commit_id
命令,恢復到提交過的指定 id 的歷史版本;
如果我們已經把修改過的錯誤檔案新增到了暫存區,可以用 git reset HEAD file
命令把暫存區的修改撤銷掉;
如果想讓工作區檔案恢復到最近一次 add
或者 commit
的狀態(即丟棄工作區的修改),可以使用 git checkout -- <filename>
。
遠端倉庫
1.建立密匙
安裝完 Git 後,我們可以在 C:\Users\user
目錄下發現 .ssh
資料夾(要開啟顯示“隱藏的專案”選項),裡面有 SSH Key 的祕鑰。 id_rsa
是私鑰, id_rsa.pub
是公鑰。
如果沒有,也可以手動建立。
開啟 Git Bash,輸入
$ ssh-keygen -t rsa -C "[email protected]"
然後一路回車即可,建立 SSH 密匙。生成位置在 C:\Users\user
目錄下。
2.連線 GitHub
登陸 GitHub ,進入 Settings 頁面,選擇左邊欄的 SSH and GPG keys 項,點選 New SSH key,新增密匙:

新增密匙
Title 隨便取個名字,Key 中貼上上 id_rsa.pub
中的內容,點選 Add SSH key 即可新增。
新增成功後就如 Title 框上面的 SSH 資訊所示。
推送
關聯遠端倉庫
首先要新增關聯遠端倉庫,登陸 GitHub,新建一個倉庫,點選右上角的 “+”,選擇 “New repository”,在 “Repository name”中填入倉庫名字,這裡以 “test” 為例,然後點選“Create repository”,就成功地建立了一個新的倉庫。
接下來,在本地倉庫中執行,
$ git remote add origin [email protected]:username/learngit.git
把上面的 username
改成自己的 GitHub 賬戶名,就可關聯遠端倉庫了。
新增後,遠端庫的預設名字是 origin,也可以自己更改為其他名字。
推送到遠端庫
然後就可以把本地倉庫推送到 GitHub 剛剛新建的遠端庫了。
$ git push -u origin master
第一次推送,如果遠端庫是空的,需要加上 -u
。以後的推送可以省去。
標籤
給指定 id 的版本建立標籤 v1.0,
$ git tag v1.0 commit_id
檢視所有標籤,
$ git tag
顯示標籤資訊,
$ git show <tagname>
刪除本地標籤,
$ git tag -d <tagname>
推送某個標籤到遠端庫,
$ git push origin <tagname>
刪除遠端庫標籤,
$ git push origin :refs/tags/<tagname>
簡化命令
有沒有覺得每次都要敲一段長長的命令很煩人,我們可以通過簡單的設定來起“別名”簡化命令!
比如,用 git st
來表示 git status
,執行如下命令就能辦到:
$ git config --global alias.st status
以上命令告訴 Git,使用 st
代替 status
。
我們可以設定,使用 co
表示 checkout
, ci
表示 commit
,
$ git config --global alias.co checkout $ git config --global alias.ci commit
其他的可以根據自己的習慣進行設定。加上 --global
是針對當前使用者起作用;不加,只針對當前的倉庫起作用。
如果想要刪除或更改某個別名,對於當前倉庫起作用的:開啟 .git/config
檔案,刪除或修改 [alias]
後的相應語句即可。
對於當前使用者起作用的:配置檔案在 C:\Users\user\.gitconfig
。