30 | 註冊一個 GitHub 帳號#
註冊網址:https://github.com/signup
使用郵箱註冊即可。
31 | 配置公私鑰#
場景:想使用 ssh 協議,而不是 http/https 協議。
優勢:不需要輸入用戶名和密碼,公私鑰匹配即身份驗證成功。
步驟🌟:Adding a new SSH key to your GitHub account——Github Docs
- 本地生成公私鑰👉上傳公鑰到 Github 上
我針對 SSH 原理寫的文章:SSH 免密登錄的實現和本質思考——DoubleLLL3
32 | 在 GitHub 上創建個人倉庫#
步驟🌟:Create a repo——Github Docs
❗️:
- Owner 還可以選擇你所在的組織
- Public 只是對外可見,提交權限都需要單獨配置
- README 文件有利於倉庫被搜索引擎檢索
- 如果本地已經有 README 文件,則不建議勾選 Add a README file,避免衝突
- Licenses:沒有 License 的內容默認是被版權保護的
- MIT License 是一個寬鬆的 License ,允許別人用你的代碼做任何事情,但必須保證你的所有權,並且你無須承擔代碼使用產生的風險
- 參考如何為自己的 Github 項目選擇開源許可證?—— 知乎
33 | 把本地倉庫同步到 GitHub#
步驟:添加遠端服務器 -> 拉取合併❗️-> 推送
添加遠端服務器:
git remote add github [email protected]:doubleLLL3/git_learning.git
其中,github
是遠端別名,後面跟上對應的 https 或者 ssh 地址,可以在 Github 上複製一下。
上一節中,最後我選擇添加一個 MIT License 創建了倉庫。(為下文埋下了伏筆)
通過 git remote -v
查看遠端服務器列表:
添加成功!
此時,git push github --all
,本地直接推送會報錯:
除了 master 分支,其他分支都成功推送。
Git 對錯誤給出了明確的提示:需要先拉取。
PS:如果遠端分支不是本地分支的祖先,那它們就不是 fast-forwards 了。反之,它們就是 fast-forwards 的關係,一般需要通過 rebase
或者 merge
解決。
所以先拉取: git fetch github
成功拉取遠端 github 的 master 分支,此時通過 gitk --all
查看分支圖:
可以發現 github 端的 master 分支並沒有和本地的 master 分支建立關係。
此時通過變基或者合併關聯兩個 master 分支:
git checkout master
:先確保切換到了 master 分支
git merge github/master --allow-unrelated-histories
:合併遠端 master 分支到本地 master 分支裡,輸入 commit 信息即可。
⚠️:需要--allow-unrelated-histories
明確允許合併的兩個分支是沒有關聯的。
此時再通過 gitk --all
查看分支圖:
關係建立成功,此時 master 的最新 commit 有兩個父 commit。
🌟 : git pull
則包含了 git fetch
和 git merge
兩步,也可以 git pull --rebase
包含git fetch
和 git rebase
兩步。
最後推送 master 分支即可: git push github master
再來看看我們的 Github 倉庫:
新增加的文件是不是很眼熟了呢~
至此,我們已經和 Github 打上交道了!