由於 Github 從 2021/08/13 開始停止提供輸入帳密的服務,所以現在只能用 SSH 金鑰了 QQ 再加上看到網路上的教學似乎都有點舊了,就來重寫一份筆記吧!

建立 SSH key

1. cd 到想要上傳到 Github 的資料夾

ssh-keygen -t rsa -b 4096 -C "[email protected]"

打了這行後,就會出現這些:

Generating public/private rsa key pair.
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]

簡單一點的話,3 個問題可以全部都按 Enter 跳過~ 接著,再繼續往下打 3 個指令

2. 開啟 ssh-agent

eval "$(ssh-agent -s)"

3. 將私鑰加入到 ssh-agent

ssh-add -K ~/.ssh/id_rsa

4. 上傳公鑰

在 .ssh/ 資料夾下會分別有 id_rsa、id_rsa.pub 這兩個檔案,也就分別代表私鑰及公鑰,這一個步驟就是將 id_rsa.pub 也就是公鑰上傳到 Github 上。

cat ~/.ssh/id_rsa.pub

會出現一大串英文跟數字夾雜的公鑰,由 ssh-rsa 開頭,自己的 email 結尾。接著就把整串都複製下來。

到 Github 網站,點選==Settings -> SSH and GPG keys -> New SSH Key==,把剛剛複製的一大串內容都貼上去,上面的標題可以自訂一個名稱,這樣就完成了!

這樣之後就不用再輸入帳密也能 push 檔案了~

建立新的 repository

這裡其實有兩種方法可以建立 repository,那我比較懶只介紹使用過的方法,想看另一種方法可以參考這裡

1. 建立名為 username.github.io 的 repository

步驟: 打開 Github -> 點選右上角的頭像 -> Your repositories -> 右上角綠綠的 New 點下去之後,就會進入以下畫面

這時候 username 的地方記得設定成你在 Github 的 username! 接下來只要把靜態網頁丟到 Github 就大功告成!

上傳檔案

後面的指令也是在欲上傳資料夾中完成,所以前面的指令完成後可以接著打下面的部分!

1. 初始化

git init

打完指令後,就會資料夾中一個多出一個檔案叫.git,會儲存 git 有關的所有資訊!但因為他是隱藏檔,所以打開資料夾是看不到的喔!

如果想要將.git 刪除

rm -r .git

2. 把檔案新增至 staging area

  • 只新增一個檔案

    git add "file name"
    
  • 一次新增資料夾中所有檔案

    git add .
    

打完指令就代表將檔案從紅色區域傳送到了藍色區域!

這時可以查看 git status,看看檔名是不是綠色的,如果有就代表成功上傳!

3. 把檔案新增至 local git repository

git commit -m "messeges"

假設我在"messeges"那邊打"first version",在上傳後會出現在檔名旁邊,算是備註的功能

4. push 檔案至遠端 repository

前面步驟都是在 local 端完成的,接下來要 push 至遠端 repo 才算完成上傳的動作!

  • 設定遠端 repo

    git remote add <local repo name> <your github repo>
    
    1. 是你的之後用來 push 和 clone 用的網址,通常是打 origin,當然要打別的名稱也是可以!
    2. 注意這裡的 ,因為我們前面是選擇 SSH 的方式,所以要填的是 repo 的 SSH 網址喔!

步驟:your repo -> 綠綠的 Code -> 選擇 SSH 網址再貼到指令上就行了!

如果遠端網址想要再重新修改

git remote set-url <local repo name> <your github repo>

查詢對 remote 的命名

git remote -v

4. 最後一步!

git push <remote address> <local repo name>:<git repo name>

由於 git 的本地分支預設是 master,如果沒有改變的話, 那邊要打 master 喔!

若最後出現結果顯示下圖的訊息,就代表你已經成功 push 檔案到遠端了!

再來就可以到 Github 確認檔案有沒有成功上傳!