Git遠程倉庫

配置

由於我們的本地 Git 倉庫和 GitHub 倉庫之間的傳輸是通過 SSH 加密的,所以我們需要配置驗證信息

  1. 使用以下命令生成 SSH Key
// 後面的 **your\[email protected]** 改爲你在 github 上註冊的郵箱
ssh-keygen -t rsa -C "[email protected]"
  1. 然後會出現下面的提示要求確認路徑
Enter file in which to save the key (~/.ssh/id_rsa):

建議將路徑改成 ~/.ssh/github,也就是最後會保存爲 github 而不是 id_rsa,這樣可以避免主要的 SSH 被覆蓋

  1. 按回車之後,會出現下面的提示要求輸入密碼,我們這使用默認的一路回車就行
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

爲什麼不設置呢? 因爲有些 Git 客戶端軟件沒有設置密碼的地方,省的以後每次輸入密碼麻煩

  1. 成功的話會在 ~/.ssh 創建文件 github 和 github.pub
  2. 打開 ~/.ssh/github.pub 文件,複製裏面的內容
  3. 回到 github 上,進入 Account => Settings(賬戶配置)
    在這裏插入圖片描述
  4. 左邊選擇 SSH and GPG keys ,然後點擊 New SSH key 按鈕
    在這裏插入圖片描述
  5. 進入 SSH 添加界面,title 設置標題,可以隨便填,粘貼在你電腦上生成的 key
    在這裏插入圖片描述

雖然 title 可以隨便填寫,但我建議填入郵箱

  1. 點擊 Add SSH Key 按鈕,添加成功後界面如下所示
    在這裏插入圖片描述

  2. 爲了驗證是否成功,輸入以下命令

ssh -T [email protected]
//如果出現下面的內容,則表示成功
Warning: Permanently added the RSA host key for IP address '52.74.223.119' to the list of known hosts.
Hi ijoywan! You've successfully authenticated, but GitHub does not provide shell access.

Github 官方上添加倉庫

  1. 登錄到 Github.com 官方後,點擊右上角的 + 號
    在這裏插入圖片描述
  2. 然後點擊 New repository 會彈出如下所示
    在這裏插入圖片描述

Repository name 輸入你想創建的倉庫的英文名,比如 ycbbs-git-tutorial 其它保持默認即可,不過你也可以做一些更改

  1. 填寫完成後點擊 “Create repository” 按鈕,就成功地創建了一個新的 Git 倉庫
    在這裏插入圖片描述

上面這段信息告訴我們:既可以從這個倉庫克隆出新的倉庫,也可以把本地倉庫的內容推送到 GitHub 倉庫

創建本地相對應的倉庫

剛剛我們在 Github.com 上新建了一個倉庫 ycbbs-git-tutorial

那麼我們要如何在本地創建對應的倉庫呢?

有三種方式:從遠程倉庫 clone 、本地新建 和 本地已經存在

  1. 從遠程倉庫 clone
我們可以使用下面的命令將遠程的 `ycbbs-git-tutorial` 倉庫 clone 到本地
git clone [email protected]:ijoywan/ycbbs-git-tutorial.git

輸出如下信息

Cloning into 'ycbbs-git-tutorial'...
Warning: Permanently added the RSA host key for IP address '13.229.188.59' to the list of known hosts.
warning: You appear to have cloned an empty repository.

然後使用 cd ycbbs-git-tutorial 進入 ycbbs-git-tutorial 目錄
最後做一些配置

git config user.name ijoywan
git config user.email [email protected]

可以使用命令 git config --list 檢查下配置是否正確

  1. 本地新建倉庫

這個很簡單,Github.com 那裏有提示

$ mkdir ycbbs-git-tutorial  # 創建目錄
$ cd    ycbbs-git-tutorial  # 進入目錄
$ echo "# 研發軍團 Github 嚮導" > README.md     # 創建 README.md 文件並寫入內容
$ ls                       # 查看目錄下的文件
README.md
$ git init                 # 初始化
Initialized empty Git repository in /Users/penglei/github/ycbbs-git-tutorial/.git/
$ git add README.md        # 添加文件
$ git commit -m "添加 README.md 文件"        # 提交併備註信息
[master (root-commit) 9c81d29] 添加 README.md 文件
 1 file changed, 1 insertion(+)
 create mode 100644 README.md

然後做一些配置

git config user.name ijoywan
git config user.email [email protected]

可以使用命令 git config --list 檢查下配置是否正確,最後提交到 Github

$ git remote add origin [email protected]:ijoywan/ycbbs-git-tutorial.git
$ git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 265 bytes | 265.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:ijoywan/ycbbs-git-tutorial.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.
  1. 如果之前本地倉庫已經存在,那麼就更好辦了,直接使用下面的命令添加 Github 倉庫

$ git remote add origin [email protected]:ijoywan/ycbbs-git-tutorial.git
$ git push -u origin master
然後我們回到 Github 上創建的倉庫,就可以看到我們剛剛添加的文件 README.md
在這裏插入圖片描述

查看當前的遠程庫

要查看當前配置有哪些遠程倉庫,可以用命令

git remote
範例:
$ git remote
origin

如果要查看每個別名的實際鏈接地址,可以添加參數 -v

$ git remote -v
origin [email protected]:ijoywan/ycbbs-git-tutorial.git (fetch)
origin [email protected]:ijoywan/ycbbs-git-tutorial.git (push)

拉取遠程倉庫

如果遠程倉庫他人做了更改,那麼就需要從遠程倉庫拉取更改,合併到本地倉庫

Git 有兩個命令用來拉取遠程倉庫的更新

  1. 從遠程倉庫下載新分支與數據

git fetch
該命令執行完後需要執行 git merge 遠程分支到本地所在的分支

  1. 將遠程倉庫拉取的更新嘗試合併到當前分支

git merge
該命令就是在執行 git fetch 之後緊接着執行 git merge 遠程分支到你所在的任意分支

假設配置好了一個遠程倉庫,並且你想要提取更新的數據

你可以首先執行 git fetch [alias] 告訴 Git 去獲取它有你沒有的數據

然後你可以執行 git merge [alias]/[branch] 以將服務器上的任何更新(假設有人這時候推送到服務器了)合併到你的當前分支

範例
我們先在 Github 上點擊 “README.md” 並在線修改它
在這裏插入圖片描述
修改爲:
在這裏插入圖片描述
然後我們就可以使用下面的命令拉取遠程的修改更新

$ git fetch origin
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From github.com:ijoywan/ycbbs-git-tutorial
   9c81d29..84a307e  master     -> origin/master

信息 9c81d29…84a307e master -> origin/master 說明(個人理解) : 將遠程的更新拉取下來後,在本地建立一個臨時的origin/master分支
我們可以使用以下命令將更新同步到本地

$ git merge origin/master
Updating 9c81d29..84a307e
Fast-forward
 README.md | 2 ++
 1 file changed, 2 insertions(+)

查看 README.md 文件內容

$ cat README.md 
# 研發軍團 Github 嚮導

詳情可以訪問 [https://www.ycbbs.vip/l/penglei/git/git-basic-index.html](https://www.ycbbs.vip/l/penglei/git/git-basic-index.html)

推送到遠程倉庫

本地修改的更新,經過自己測試成功後,就可以推送到遠端的倉庫裏

推送新分支與數據到某個遠端倉庫命令

git push [alias] [branch]
上面的命令會將 [branch] 分支推送成爲 [alias] 遠程倉庫上的 [branch]

範例

$ touch demo.md      # 添加文件
$ git add demo.md    # 提交暫存區 
$ git commit -m "添加 demo.md 文件"
[master c0137c6] 添加 demo.md 文件
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 demo.md

$ git push origin master    # 推送到 Github
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 287 bytes | 287.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:ijoywan/ycbbs-git-tutorial.git
   84a307e..c0137c6  master -> master

點開我們在 Github 的倉庫,可以看到文件 demo.md 已經成功提交到遠程倉庫上了在這裏插入圖片描述

刪除遠程倉庫

刪除遠程倉庫可以使用命令

git remote rm [別名]

範例

  1. 先查看有多少遠程倉庫
$ git remote -v
origin  [email protected]:ijoywan/ycbbs-git-tutorial.git (fetch)
origin  [email protected]:ijoywan/ycbbs-git-tutorial.git (push)
  1. 添加分支 origin2
$ git remote add origin2 [email protected]:ijoywan/ycbbs-git-tutorial.git
  1. 再次查看遠程倉庫有多少分支
$ git remote -v
origin  [email protected]:ijoywan/ycbbs-git-tutorial.git (fetch)
origin  [email protected]:ijoywan/ycbbs-git-tutorial.git (push)
origin2 [email protected]:ijoywan/ycbbs-git-tutorial.git (fetch)
origin2 [email protected]:ijoywan/ycbbs-git-tutorial.git (push)
  1. 刪除分支 origin2
$ git remote rm origin2
$ git remote -v
origin  [email protected]:ijoywan/ycbbs-git-tutorial.git (fetch)
origin  [email protected]:ijoywan/ycbbs-git-tutorial.git (push)
發佈了27 篇原創文章 · 獲贊 0 · 訪問量 677
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章