Bo2SS

Bo2SS

3 Git與GitHub的簡單同步

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

image

❗️:

  • Owner 還可以選擇你所在的組織
  • Public 只是對外可見,提交權限都需要單獨配置
  • README 文件有利於倉庫被搜索引擎檢索
  • 如果本地已經有 README 文件,則不建議勾選 Add a README file,避免衝突
  • Licenses:沒有 License 的內容默認是被版權保護的

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 fetchgit merge 兩步,也可以 git pull --rebase 包含git fetchgit rebase 兩步。

最後推送 master 分支即可: git push github master


再來看看我們的 Github 倉庫:

新增加的文件是不是很眼熟了呢~

至此,我們已經和 Github 打上交道了!

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。