Phoenix's Blog

Hello git

2019-09-06

Hello git

git 是一套版本控制軟體,類似的概念還記得小時候打電動每次破關,遊戲都會幫你儲存,死了又可以在同一個地方重新開始.因此程式每寫一個版本就儲存起來,可以看到每次版本的進程,網路上有很多更詳細的介紹,我們就直接開使安裝吧!

環境建立

  • 開啟 Terminal,進到要建專案的目錄底下後,建立資料夾,透過指令 mkdir xxxx
1
mkdir hello_git (創建 資料夾名稱)
  • 接下來進入到我們剛建立的專案cd xxxx
1
cd hello_git (進入 資料夾名稱)

git 初始化建立repository

  • 進入資料夾後開始 git 初始化 (Initialized empty Git repository)
1
git init
  • 接著透過指令 ls -a 可以看到剛 git init 後產生的 .git
1
ls -a (查看該目錄所有檔案)

  • 接著利用 git status 取得現在檔案的狀態,像是我們若有修改檔案、刪除、新增、commit…等,就可以透過這個指令看到目前所有的狀況
1
git status

建立檔案

  • 我們先透過 touch 指令建立一個 hello.txt 的檔案
1
touch hello.txt (建立 hello.txt)
  • 接著利用 vim 指令來編輯hello.txt
1
vim hello.txt
  • 接著按下 i 後,隨意輸入內容,接著書入:wq存檔後離開
1
i (insert,隨意輸入字)
1
:wq (write & quit,存擋並離開)

註冊檔案

  • 這時透過 git status 查看目前狀態,會發現 hello.txt 已變紅色,git 偵測到 hello.txt 有新的檔案

  • 接著可以透過 git add XXX 指令將檔案hello.txt 加入

    1
    git add hello.txt
  • 加入檔案後我們在利用git status 指令查看,會發現 hello.txt 已變綠色,代表狀態從 working area 轉變成 staging area)

提交本次修改

  • 我們將本次的修改做個紀錄,這樣之後可以透過這些紀錄快速了解本次修改的目的,透過git commit -m "XXX" 指令,因為我這次是新增一個 hello.txt 檔案 的修改,所以我輸入:
    1
    git commit -m "add new file hello.txt"

  • 再用 git status 看一下現在狀態,這樣就已將檔案加入完畢

接著我們要將本機端的修改推送到遠端!但在推送之前需要一些步驟

產生 ssh key (Mac)

確認憑證是否存在?

  • 先到家目錄確認有無 .ssh 資料夾
1
cd ~/.ssh

若沒有的話,自己建立一個

1
mkdir .ssh
  • 看一下內部檔案ls,確認有無 id_rsa、id_rsa.pub`

  • 若沒有的話透過下方指令生產一個,建立方法:

    1
    ssh-keygen -t rsa -C "yourmail@email.com
  • 讀取公鑰,將公鑰貼到 Git 上,透過 cat xxx 指令查看後複製起來,要貼給 GitHub 上

    1
    cat id_rsa.pub

將公鑰貼到 GitHub 自己的帳號裡

  • 進到自己帳號 > Settings

  • 左側有個“SSH and GPG Keys” ,接著點擊右側 ”new SSh Key“,並將 title 與 key 貼上

  • 接著將網站中方筐處複製起來
    1
    git@github.com:XXX/hello_git.git

  • terminal 進到自己電腦專案資料夾

  • 接著我們也要在遠端建立 repository,輸入剛剛在 git 網頁藍色方匡處的指令

    1
    git remote add origin git@github.com:XXX/hello_git.git
  • 接著將本次修改推送到遠端的 master 上,之後只要 git push 即可

    1
    git push -u origin master
  • 完成後回到剛剛網頁重新整理即可看到下方結果


透過 GitHub 展示靜態網站

  • 建立名為 gh-pages 的 branch

    1
    git branch gh-pages
  • 推送到 gh-pages 分支上

    1
    git push -u origin gh-pages
  • 這樣就可以到網站上查看囉

    1
    [github_name].github.io/[repository_name]/

git 基本指令整理:

  • git 初始化 repository

    1
    git init
  • 指定檔案從 working area 加入到 staging area

    1
    git add XXX
  • 該本目錄底下檔案全部加入

    1
    git add .
  • 取得檔案狀態

    1
    git status
  • 提交指定檔案

    1
    2
    git commit -m "add new file XXX"
    git commit -m "modify XXX" (內容可自行修改)
  • 查看 log 紀錄,可確認剛做的事、是否已成功..等

    1
    git log
  • 目前的 branch 指定切換到 xxx branch

    1
    git checkout XXX
  • 推送到遠端

    1
    git push
  • 建立 branch

    1
    git branch XXX
  • 若發現有一小部分修改,沒加入剛剛的 commit,可以使用:

    1
    git commit --amend --no-edit
      1. git add . 加入小部分修改
      1. git status 確認狀態正確後
      1. git commit --amend --no-edit 追加檔案到最近一次的 Commit

參考


Sourcetree 安裝

Sourcetree 網站連結

  • 安裝完後並申請帳戶

  • 會出現所有 repository ,點擊要處理的 repository

  • 即可看到目前 repository 的狀態、history..等等
  • 如何在 terminal 直接呼叫 repository 的控制頁面呢?
  1. Sourcetree > install Command Line Tools
  2. 安裝成功

3.這樣就可在 terminal 輸入指令stree . 即可跳出repository 的控制頁了!!

1
stree .
Tags: git