如何把存檔點上傳到雲端存檔庫?SSH key 是什麼?要怎麼設定?
我們要做什麼? 先複習一下,我們到底要拿 Git 來做什麼? 我們的目的是要把我們要建立的網站(之後會帶大家建立)存成存檔點,然後上傳到雲端存檔庫,這樣我們的網站就可以部署到網路上! graph LR A[原始檔案] -->|存檔| B[存檔點] B -->|上傳| C[雲端存檔庫] C -->|部署| D[靜態網站]GitHub 是全球最大的 男性交友網站 原始碼代管服務平台,也就是可以上傳存檔的雲端存檔庫。 在這篇文章,我會以 GitHub 來示範,在雲端存檔庫也建立一個存檔槽,來把 上一篇文章 存好的存檔點上傳上去! 註冊 GitHub 帳號 到 GitHub 的 網站首頁,點右上角的 Sign up 就可以註冊。 因為我已經有帳號了,就不再註冊一個給大家看,應該沒有人會卡在這邊吧 XD 建立雲端存檔庫 一樣回到首頁,在左邊可以找到這個「New」,按下去就可以開始建立。 在這邊有一些選項要填,這邊給大家一點指引: Repository name:隨意,每個帳號底下的所有 repo 彼此的名稱不能重覆 Description:隨意,不填也可以 Choose visibility:如果不想要自己的原始檔被看到、或被拿去用,可以選 Private Start with a template:No template,你也沒得選 Add README:務必選 Off,不然就會跟我們已經有的存檔打架 Add .gitignore:務必選 No .gitignore,理由和上面一樣 Add license:務必選 No license,同上 然後按下面的 Create repository 就可以建立了~ 把存檔上傳到 GitHub 如果都沒有填錯的話,應該就會看到如何上傳到空 repo 的簡易教學: 我們需要的是下面的「push an existing repository」,因為我們已經在自己的電腦有存檔槽了。 但先等等! 如果你就直接照著這個做的話,你很有可能會傳不上去: 1 2 3 4 5 6 7 git remote add origin https://github.com/giveanornot/my-blog.git git branch -M main git push -u origin main # Username for 'https://github.com': giveanornot # Password for 'https://giveanornot@github.com': # remote: Invalid username or token. Password authentication is not supported for Git operations. # fatal: Authentication failed for 'https://github.com/giveanornot/my-blog.git/' 你會一直收到 password authentication is not supported for Git operations 的錯誤,那是因為 GitHub 從 2021/08/21 開始就不再接受使用密碼驗證。 設定 SSH key 不能用密碼驗證的話,那我們也只能用另一種方法了,我們這邊選擇用 SSH key。 雖然會麻煩一點,但好消息是只要設定一次,之後就不用再登入,可以直接上傳! SSH key 是什麼? SSH key 就像是撕成兩半的紙、或是騎縫章,一半自己留著,然把一半給對方。 1 如果遇到需要證明我自己就是那個人的時候,就把這兩半拿出來對一下,可以配在一起就表示我真的是那個人。 而這就是所謂 公鑰、私鑰 的概念。我們會把其中的公鑰給 GitHub,私鑰自己留著登入的時候用。 產生 SSH key 我們要再回到 terminal 裡面了,如果你是從之前的文章一路跟過來的話,我建議另外開一個 terminal,比較不會搞混。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 mkdir ~/.ssh # 在 ~(home) 建立一個叫做 .ssh 的資料夾,如果已經有了就不用再建了 cd ~/.ssh # 進入剛剛建的資料夾 ssh-keygen -t ed25519 -C "jn@giveanornot.com" # 用 ssh-keygen 來產生 SSH key,-C 後面的 email 記的改成自己的! # 接著一路 enter 下去就可以 # Generating public/private ed25519 key pair. # Enter file in which to save the key (/home/giveanornot/.ssh/id_ed25519): # Enter passphrase for "/home/giveanornot/.ssh/id_ed25519" (empty for no passphrase): # Enter same passphrase again: # Your identification has been saved in /home/giveanornot/.ssh/id_ed25519 # Your public key has been saved in /home/giveanornot/.ssh/id_ed25519.pub # The key fingerprint is: # SHA256:hc4RMApnWtTvUMyFZaYFWcISxZKRWcOPwa7b+IZ8pVY jn@giveanornot.com # The key's randomart image is: # +--[ED25519 256]--+ # | ..=.=^BBB | # | * .B.%X | # | . . *++. | # | .o+o. | # | +S | # | . . E | # | . = + | # | = * | # | =. | # +----[SHA256]-----+ ls # 用 ls 看一下 key 有沒有產出來了 # id_ed25519.pub id_ed25519 # 應該會有兩個檔案 cat id_ed25519.pub # 用 cat 看一下公鑰長什麼樣子(pub = public = 公鑰) # ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPS1y4G0uwJvtbB4WWNMOeY2dHUGbSlwmwElQFgw7l9Q jn@giveanornot.com 私鑰請務必要保管好!!! 把公鑰設定到 GitHub 首先我們先到 右上角頭貼 => Settings => SSH and GPG keys => New SSH key 然後把公鑰填進去: Title:隨意,可以讓你辨認這是哪一台電腦產出來的就好了 Key type:選Authenticaiton Key Key:把上面用 cat 看的公鑰內容貼進來 然後按下面的 Add SSH key 就可以了。 上傳存檔點 設定好 SSH key 之後,我們就可以回來上傳存檔點了。我們回到我們最一開始建的雲端存檔庫(repo)。 因為我們要用 SSH key 的方式來驗證,所以記得選到 SSH: 然後我們就可以依照下面的說明去上傳了~ 1 2 3 4 5 6 7 8 9 10 git remote add origin git@github.com:giveanornot/my-blog.git # 連接在 GitHub 的雲端存檔庫,並把它叫做「origin」(叫做 origin 只是個慣例) git branch -M main # 把目前的分支改名叫做「main」 git push -u origin main # 把 main 這個分支的存檔點都上傳(推)到 origin # Enumerating objects: 3, done. # Counting objects: 100% (3/3), done. # Writing objects: 100% (3/3), 210 bytes | 70.00 KiB/s, done. # Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0) # To github.com:giveanornot/my-blog.git # * [new branch] main -> main # branch 'main' set up to track 'origin/main'. 註:分支的概念比較進階,在自己寫部落格的時候用到的機會不大,我們也只會一直待在「main」這個分支,所以這邊就不深入解釋。 這樣就可以看到我們的檔案就被傳上來了: 上傳新的存檔點 這篇文章前面說的,是第一次什麼都還沒設定的時候的上傳的流程。如果之後有新的存檔點,而且要上傳的話,會像是這個樣子: 首先我們先像 上一篇文章 一樣,再多存一個檔: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 touch another-post.txt # 用 touch 來新增另一篇文章,一樣可以用記事本,都可以 ls # 用 ls 看一下目前有哪些檔案 # another-post.txt post.txt git add another-post.txt # 把「another-post.txt」也納入接下來的這次要存檔 git status # 看一下現在存檔槽的狀態 # On branch main # Your branch is up to date with 'origin/main'. # # Changes to be committed: # (use "git restore --staged <file>..." to unstage) # new file: another-post.txt # 看起來「another-post.txt」已經被納入,可以正式存檔了 git commit -m "add another post" # 正式寫入存檔點 # [main 38d7d59] add another post # 1 file changed, 0 insertions(+), 0 deletions(-) # create mode 100644 another-post.txt 存檔點寫完之後,接著就可以把這個新的存檔點上傳(推)上去了: 1 2 3 4 5 6 7 8 9 sh-5.3$ git push # 就是用「git」來「push」 # Enumerating objects: 3, done. # Counting objects: 100% (3/3), done. # Delta compression using up to 16 threads # Compressing objects: 100% (2/2), done. # Writing objects: 100% (2/2), 249 bytes | 249.00 KiB/s, done. # Total 2 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0) # To github.com:giveanornot/my-blog.git # 0f84fa4..38d7d59 main -> main 在以後,就只要這著這幾個步驟,就可以把新的檔案(或是改過的)存檔、上傳到去雲端資料庫啦~~ 結語 就這樣,我們終於知道怎麼把存檔點傳到雲端資料庫了。之後在
以上内容来自博客订阅源,版权归原作者。关注作者后可以在 关注列表 第一时间查看作者文章。

登录后,加入这场讨论。
登录参与