Git 系列文章(二)—— Git 基本用法
正文之前
上一篇文章簡單介紹了 Git 和 GitHub,這一篇文章用一個倉庫來作為例子介紹 Git 的基本用法,而不是單純地列出每一條 Git 命令
這篇文章來自我的部落格
正文
1. 倉庫的初始操作
初始化
首先我先在本地存放 GitHub 倉庫的資料夾裡新建一個資料夾,叫 “Git-test”
現在這還只是一個普通的空資料夾,所以在這個資料夾裡開啟 Git Bash:
要想把一個空的資料夾變為 GitHub 的倉庫,首先我們要用 Git 初始化這個倉庫:
git init
雖然在初始化完倉庫之後,資料夾內看上去沒有變化,但是這個資料夾裡有一個 .git 目錄,預設是隱藏的,開啟隱藏檔案之後就可以看見:
檢視倉庫狀態
檢視一下這個倉庫的狀態:
git status
新增檔案
首先我先在倉庫裡建立一個帶有一個詞 “test” 的 README.md
然後檢視倉庫狀態會發現有了變化:
處於未提交狀態的檔案都被歸為 Untracked files
提交的過程有兩步,先向暫存區中新增檔案,然後提交
首先我們將 README.md 檔案提交到暫存區:
git add README.md
如果你想要向暫存區新增所有變動的檔案,那就用:
git add .
然後我們檢視一下倉庫狀態:
Changes to be committed 中的檔案都是已經暫存,但是沒有提交的檔案
接下來我們提交檔案:
git commit -m 'Update README.md'
-m 後面跟的是這次提交的資訊,相當於概述
有的人會想問,README.md 在提交之前就已經在我的倉庫裡了,為什麼還要提交呢?
因為倉庫的最終目的是對外開放,你自己的本地倉庫的改動如果不提交,不推送,GitHub 上的遠端倉庫裡是不會有變化的,其他人看不到你所做的改動,關於提交到遠端倉庫,下文會說明
檢視日誌
在多人協作時,通常需要檢視日誌來看看有誰對進行了提交:
git log
就會發現我剛才提交了 README.md 檔案
2. 倉庫的分支
接下來的分支是一個重要的概念,在多人協作開發時,都要用到分支
首先,在我們初始化倉庫時,有一個預設的主分支 master
,如果沒有建立其他分支,那麼所有的工作都是在 master
git checkout -b newBranch
這時候會發現已經切換到我新建的分支 newBranch
了
-b 後面跟著分支的的名字,如果分支存在,就轉到那個分支,不存在就新建
假設要建立新的分支,那麼上面那條語句可以分成兩步來做:
git branch newBranch
git checkout newBranch
先建立分支,再切換到分支
3. 遠端倉庫
到現在為止,我們對倉庫的操作都是在本地進行的,接下來說一下遠端倉庫:
首先是在 GitHub 上建立一個倉庫,名字與上面的本地倉庫一樣:
為了寫部落格用,這個 Git-test 倉庫是私有倉庫(用學生郵箱開的)
在你建立完之後,會有提示頁面:
我們要在這個倉庫作為本地倉庫的遠端倉庫,簡單地說,就是把我們本地的 Git-test 倉庫和 GitHub 上的遠端倉庫 Git-test 關聯起來
推送內容至遠端倉庫
我們選擇第一種方式,初始化、新增 README.md 和 提交更改都已經完成了,現在我們新增遠端倉庫,複製 SSH,在命令列使用:
git remote add origin [email protected]:lihanxiang/Git.test.git
執行完這個命令之後,Git 就會根據 [email protected]:lihanxiang/Git.test.git
來將我們剛才建立的倉庫設定為本地倉庫的遠端倉庫,名稱為 origin
這個名稱 origin
和我們在 GitHub 上的倉庫名不一樣,我們在推送內容時,填寫的名稱是我們在設定遠端倉庫時指定的名字
然後將本地倉庫的內容推送至遠端倉庫的 master 分支:
git push -u origin master
然後在 GitHub 上重新整理一下倉庫的頁面:
這時候我們已經將本地倉庫的內容推送至遠端倉庫了
從遠端倉庫獲取內容
如果我直接在遠端倉庫的 master 分支新建一個檔案,在對本地倉庫進行操作時,就需要先獲取遠端倉庫的新的內容:
git pull origin master
4. 總結
上面說的是 Git 的基本操作,在這些方法中,有幾個是最常用的:
git init git status git checkout git add git commit git pull git push
後四步一般是連在一起的
這只是簡單介紹了一下 Git,下一篇文章將講述分支的相關操作