Git連接遠程倉庫

Git 並不像 SVN 那樣有個中心服務器。

目前我們使用到的 Git 命令都是在本地執行,如果你想通過 Git 分享你的代碼或者與其他開發人員合作。你就需要將數據放到一臺其他開發人員能夠連接的服務器上。

本例使用了自定義Git倉庫服務器作爲遠程倉庫


添加遠程庫

要添加一個新的遠程倉庫,可以指定一個簡單的名字,以便將來引用,命令格式如下:

git remote add [shortname] [url]

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

使用以下命令生成SSH Key:

$ ssh-keygen -t rsa -C "[email protected]"

後面的 [email protected] 改爲你在 遠程倉庫 上註冊的郵箱,之後會要求確認路徑和輸入密碼,我們這使用默認的一路回車就行。成功的話會在~/下生成.ssh文件夾。

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

$ ssh -T [email protected]
Hi boy! You've successfully authenticated, but Git does not provide shell access.

以下命令說明我們已成功連上 Git倉庫。


現在,我們根據 Git 的提示,在本地的倉庫下運行命令:

$ mkdir git-test                     # 創建測試目錄
$ cd git-test/                       # 進入測試目錄
$ echo "# Git 測試" >> README.md     # 創建 README.md 文件並寫入內容
$ ls                                        # 查看目錄下的文件
README
$ git init                                  # 初始化
$ git add README.md                         # 添加文件
$ git commit -m "添加 README.md 文件"        # 提交併備註信息
[master (root-commit) 0205aab] 添加 README.md 文件
 1 file changed, 1 insertion(+)
 create mode 100644 README.md

# 提交到 Git
$ git remote add origin [email protected]:boy/git-test.git
$ git push -u origin master

以下命令請根據你在Git成功創建新倉庫的地方複製,而不是根據我提供的命令,因爲我們的Git用戶名不一樣,倉庫名也不一樣。

接下來我們返回 Git 創建的倉庫,就可以看到文件已上傳到 Git上:


查看當前的遠程庫

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

git remote

實例

$ git remote
origin
$ git remote - v

執行時加上 -v 參數,你還可以看到每個別名的實際鏈接地址。


提取遠程倉庫

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

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

git fetch

該命令執行完後需要執行git merge 遠程分支到你所在的分支。

2、從遠端倉庫提取數據並嘗試合併到當前分支:

git merge

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

假設你配置好了一個遠程倉庫,並且你想要提取更新的數據,你可以首先執行 git fetch [alias] 告訴 Git 去獲取它有你沒有的數據,然後你可以執行 git merge [alias]/[branch] 以將服務器上的任何更新(假設有人這時候推送到服務器了)合併到你的當前分支。

然後我們在本地更新修改。
$ 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 my.git:boy/git-test
   0205aab..febd8ed  master     -> origin/master

以上信息"0205aab..febd8ed master -> origin/master" 說明 master 分支已被更新,我們可以使用以下命令將更新同步到本地:

$ git merge origin/master
Updating 0205aab..febd8ed
Fast-forward
 README.md | 1 +
 1 file changed, 1 insertion(+)

查看 README.md 文件內容:

$ cat README.md 
# Git 測試
## 第一次修改內容

推送到遠程倉庫

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

git push [alias] [branch]

以上命令將你的 [branch] 分支推送成爲 [alias] 遠程倉庫上的 [branch] 分支,實例如下。

$ touch test.txt      # 添加文件
$ git add test.txt 
$ git commit -m "添加到遠程"
master 69e702d] 添加到遠程
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test.txt

$ git push origin master    # 推送到 Github

重新回到我們的 Git 倉庫,可以看到文件以及提交上來了:


刪除遠程倉庫

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

git remote rm [別名]

實例

$ git remote -v

# 添加倉庫 origin2
$ git remote add origin2 [email protected]:boy/git-test.git

$ git remote -v
origin     [email protected]:boy/git-test.git(fetch)
origin     [email protected]:boy/git-test.git (push)
origin2    [email protected]:boy/git-test.git (fetch)
origin2    [email protected]:boy/git-test.git (push)

# 刪除倉庫 origin2
$ git remote rm origin2
$ git remote -v
origin     [email protected]:boy/git-test.git(fetch)
origin     [email protected]:boy/git-test.git (push)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章