GitHub 小白入門(四)本地與遠程倉庫的交互

導讀:上一篇文章介紹了 git 的安裝及本地的幾個基本操作,這篇文章介紹如何使用 git 這個工具,完成本地與遠程倉庫的交互。

這篇文章將告訴你,如何使用 git

  • 下載倉庫文件
  • 把本地的文件上傳到遠程倉庫
  • 倉庫文件有更新時保持本地與遠程一致

讓我們開始吧!

上一篇:GitHub 小白入門(三)Git 的安裝及使用
原博客地址:GitHub-Tutorial

1. SSH 配置

要想本地與遠程倉庫交互,必須有一個安全機制防止數據泄漏👀,這個安全機制就是 SSH,因此遠程交互之前需要進行 SSH 配置。

1.1 生成 SSH key

想要生成 SSH KEY 需要先安裝 SSH,不過我們之前已經安裝的 GitBash 自帶 SSH😊(我的操作系統是 Windows 10)

打開 GitBash ,輸入 ssh,如果返回如下界面說明 SSH 已安裝,否則得自己安裝呀!
在這裏插入圖片描述
緊接着輸入 ssh-keygen -t rsa (指定 rsa 算法生成密鑰),接着連續三個回
車鍵(不需要輸入密碼),然後就會生成兩個文件 id_rsa (密鑰)和 id_rsa.pub (公鑰)。

我劃線的地方就是密鑰和公鑰存儲的位置,等會兒我們需要打開文件複製密鑰🔑。
在這裏插入圖片描述

1.2 添加 SSH key

接下來要做的是把 id_rsa.pub 的內容添加到 GitHub 上,這樣你本地的 id_rsa 密鑰跟 GitHub 上的 id_rsa.pub 公鑰進行配對,授權成功纔可以提交代碼。

打開 GitHub,點擊右上角的你的頭像,點擊設置 settings:

在這裏插入圖片描述
點擊左側的 SSH and GPG keys,點擊右上角的 New SSH key
在這裏插入圖片描述
進入到下面的界面,把剛剛生成的公鑰 (id_rsa.pub 文件中的內容)複製到 Key 所在框, Title 不用填,複製好點擊下方的 Add SSH key 按鈕即可。

提示:id_rsa.pub 可以選擇用 Notepad++ 或 Sublime 打開~
在這裏插入圖片描述
添加完返回 SSH 頁面就會出現你的本地信息,如下圖所示:

在這裏插入圖片描述

1.3 驗證綁定

最後我們驗證一下本地的 git 與 GitHub 是否綁定成功,在 GitBash 輸入 ssh -T [email protected] ,如果返回下面的提示,說明綁定成功✌
在這裏插入圖片描述
到此爲止,我們的 SSH 配置完成,接下來我們可以與遠程倉庫交互啦!

2. 通過 Git 下載代碼

看過第一篇教程的同學一定知道,某個項目的界面的 Clone or download 按鈕可以下載整個倉庫/項目的文件。

最簡單的就是點擊 Download ZIP,這是常規的下載操作,下載一個壓縮包到指定目錄。

另一種方法就是使用 git clone,這種方法又分爲 cloning with HTTPS 和 clone with SSH,下面我們分別演示一下。

❓到這裏你會有疑問,我能直接點擊下載,爲啥要學 git clone😮。

還記得第一篇教程就說過,git 是個版本管理工具,你用它就是爲了記錄提交歷史,寫錯了能夠回滾到歷史文件等。

如果你下載的是你自己的文件,你直接 download,就完成不了上面的功能,你改了文件也沒法在原來的基礎上提交。

當然如果你只是爲了下載別人的倉庫看看,不需要版本控制這些功能,直接download 就行;但如果需要用到版本管理,就得學習 git clone 😎

在這裏插入圖片描述

2.1 git clone with HTTPS

這種方法是官方推薦的,它不用 SSH 就可以完成。

我以一個倉庫爲例,注意上面寫的是 Clone with HTTPS,複製下面的 URL:
在這裏插入圖片描述
在這裏插入圖片描述
打開 GitBash 窗口,輸入 git clone,後面跟剛剛複製的 URL,回車,等它下載完,你會看到你的文件夾裏直接就是倉庫裏的文件。
語句長這樣:

git clone https://github.com/project/repo.git

在這裏插入圖片描述

2.2 git clone with SSH

Clone with HTTPS那裏,點擊 Use SSH,就會切換成第二種 git clone 方式。

第二種方式需要用到 SSH,沒有配置是不能用的,所以我們放到這一節介紹。

其實步驟與上面的步驟一樣,只不過複製的 URL 是 SSH 機制下的:
在這裏插入圖片描述
接着也是在目錄下打開 Git Bash,輸入 git clone, 後面是剛剛複製的 URL。

語句長這樣,可以看出 SSH 下的 URL 和 HTTPs 下的 URL 不一樣。

git clone [email protected]:project/repo.git

2.3 異同

再說這兩種方法的異同。

同:HTTPs 與 SSH 下的 git 都可以直接進行 git clone 操作

異:

  • HTTPs git clone 到本地,進行了一些文件的修改,當再次提交到 GitHub遠程服務器的時候,都會進行賬號與密碼的輸入
  • SSH git clone 到本地之後,由於已有 SSH Keys 授權,就不需要用戶名和密碼進行授權了。

3. 通過 Git 提交代碼

3.1 兩個命令

上一節我們講了一些基本的 git 命令,不過都只涉及本地,現在我們想本地與遠程倉庫交互,就需要學習兩個新命令:

  • git push:翻譯爲推,當你的代碼更新,需要把本地的推到遠程倉庫
  • git pull:翻譯爲拉,當遠程倉庫有更新,你需要把遠程的拉到本地進行合併

可以看出這兩個命令都是爲了保證本地與遠程的同步。

我們需要區分 git clone 和 git pull,雖然它們都是從遠程倉庫到本地的更新,但前者在本地無倉庫時使用,後者是本地已有倉庫時使用。

使用舉例:

git push origin master # 把本地代碼推到遠程 master 分支
git pull origin master # 把遠程最新的代碼更新到本地

一般我們在 push 之前都會先 pull ,這樣不容易衝突。

3.2 提交代碼

通過 git 提交代碼的前提是已有倉庫,然後把倉庫 clone 到本地,你修改後再pull。

相信通過前面的教程,你已經學會如何新建和刪除一個倉庫,我這裏用一個臨時建的倉庫演示一下提交功能。
在這裏插入圖片描述
然後我們把倉庫 clone 到本地,爲了不輸入賬號密碼,我這裏用 SSH 的方法 clone。在這裏插入圖片描述
接下來我就要在更新本地倉庫, 我只是新加一個 python 文件,你也可以修改一個已有文件。

在這裏插入圖片描述
看過上一篇 git 教程,我們就知道所有的改動都需要通過 git addgit commit 提交到本地的倉庫。

在這個文件夾/本地倉庫,右擊打開 Git Bash,輸入 git status 查看狀態,再用 git addgit commit 提交新加的文件。

注意 first commit 是我爲這次 commit 起的名字,你可以寫成其他名字。
在這裏插入圖片描述
然後輸入 git log 查看提交歷史,可以看到一共有兩次 commit,第一次是在 GitHub 上新建倉庫,第二次是剛剛在本地新提交文件。
在這裏插入圖片描述
到現在我們才完成本地更新的工作,接下來要把本地倉庫 push 到遠程倉庫

Git Bash 輸入 git push origin master 即可😊

默認向 GitHub 上的 test 目錄提交了代碼,而這個代碼是在 master 分支。
在這裏插入圖片描述
然後我們刷新遠程倉庫,可以看到有更新:
在這裏插入圖片描述

總結:這篇文章介紹了 SSH 的配置,通過 SSH 完成 git clone 和 git pull 等操作,完成本地倉庫與遠程倉庫的交互,並記錄每次的提交歷史。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章