git命令之git remote的用法

來源:互聯網
上載者:User
要 參與任何一個 Git 項目的協作,必須要瞭解該如何管理遠程倉庫.遠程倉庫是指託管在網路上的項目倉庫,可能會有好多個,其中有些你只能讀,另外有些可以寫.同他人協作開發某 個項目時,需要管理這些遠程倉庫,以便推送或拉取資料,分享各自的工作進展.管理遠程倉庫的工作,包括添加遠程庫,移除廢棄的遠程庫,管理各式遠程庫分 支,定義是否跟蹤這些分支,等等.本節我們將詳細討論遠程庫的管理和使用.

  查看當前的遠程庫

  要查看當前配置有哪些遠程倉庫,可以用 git remote 命令,它會列出每個遠程庫的簡短名字.在複製完某個項目後,至少可以看到一個名為 origin 的遠程庫,Git 預設使用這個名字來標識你所複製的原始倉庫:

  $ git clone git://github.com/schacon/ticgit.git

  Initialized empty Git repository in /private/tmp/ticgit/.git/

  remote: Counting objects: 595, done.

  remote: Compressing objects: 100% (269/269), done.

  remote: Total 595 (delta 255), reused 589 (delta 253)

  Receiving objects: 100% (595/595), 73.31 KiB | 1 KiB/s, done.

  Resolving deltas: 100% (255/255), done.

  $ cd ticgit

(1)git remote 不帶參數,列出已經存在的遠程分支

  $ git remote

  origin

(2)git remote -v | --verbose 列出詳細資料,在每一個名字後面列出其遠程url

此時, -v 選項(譯註:此為 –verbose 的簡寫,取首字母),顯示對應的複製地址:

  $ git remote -v

  origin git://github.com/schacon/ticgit.git如果有多個遠程倉庫,此命令將全部列出.比如在我的 Grit 項目中,可以看到:

  $ cd grit

  $ git remote -v

  bakkdoor git://github.com/bakkdoor/grit.git

  cho45 git://github.com/cho45/grit.git

  defunkt git://github.com/defunkt/grit.git

  koke git://github.com/koke/grit.git

  origin 這樣一來,我就可以非常輕鬆地從這些使用者的倉庫中,拉取他們的提交到本地.請注意,上面列出的地址只有 origin 用的是 SSH URL 連結,所以也只有這個倉庫我能推送資料上去(我們會在第四章解釋原因).

  添加遠程倉庫

  要添加一個新的遠程倉庫,可以指定一個簡單的名字,以便將來引用,運行 git remote add [shortname] [url]:

  $ git remote

  origin

  $ git remote add pb git://github.com/paulboone/ticgit.git

  $ git remote -v

  origin git://github.com/schacon/ticgit.git

  pb git://github.com/paulboone/ticgit.git現在可以用字串 pb 指代對應的倉庫地址了.比如說,要抓取所有 Paul 有的,但本地倉庫沒有的資訊,可以運行 git fetch pb:

  $ git fetch pb

  remote: Counting objects: 58, done.

  remote: Compressing objects: 100% (41/41), done.

  remote: Total 44 (delta 24), reused 1 (delta 0)

  Unpacking objects: 100% (44/44), done.

  From git://github.com/paulboone/ticgit

  * [new branch] master -> pb/master

  * [new branch] ticgit -> pb/ticgit

現在,Paul 的主幹分支(master)已經完全可以在本地訪問了,對應的名字是 pb/master,你可以將它合并到自己的某個分支,或者切換到這個分支,看看有些什麼有趣的更


二。通過git remote 建立遠程倉庫

建立遠程倉庫

最近一直在學習使用git來管理自己的程式,總是今天東學一點,明天西湊一點,到用的時候,總是有些茫然不知所措。

在部落格園裡看見一篇老好的文章,教我們做筆記啦,但是做完筆記還是要記得總結哦。

來吧,讓我們一起來總結吧,今天先來看看git遠端倉庫是怎麼建立的。

當然,使用git嘛,第一步肯定是得建立一個git倉庫,總得有個操作的空間吧,巧婦難為無米之炊嘛。

1.初始化一個空的git倉庫

1 software@debian:~$ mkdir yafeng2 software@debian:~$ cd yafeng/3 software@debian:~/yafeng$ ls4 software@debian:~/yafeng$ git init5 Initialized empty Git repository in /home/software/yafeng/.git/6 software@debian:~/yafeng$ 

命令注釋:

在上面的命令中,真正去初始化的是第四行的那句---git init

當然,還有很多同學會看見加了參數--bare的命令,這個命令會在我們以後慢慢給大家解釋,對於不是作為共用倉庫,而是作為一個自己操作的倉庫,上面這樣就足夠了。

好了,現在yafeng目錄就是我們的據點---git倉庫了哦。

下面我們總要做點什麼的吧,入寶山總不能光看著哦:

2.向倉庫提交我們寫的檔案

1 software@debian:~/yafeng$ echo "our first git repository" >> file2 software@debian:~/yafeng$ ls3 file4 software@debian:~/yafeng$ git add file5 software@debian:~/yafeng$ git commit -m "the first file to commit" file6 [master (root-commit) 0c72641] the first file to commit7  1 files changed, 1 insertions(+), 0 deletions(-)8  create mode 100644 file9 software@debian:~/yafeng$ 

命令解釋:
我們在倉庫中建立了一個檔案file,作為我們的樣本檔案。

第4行:將file檔案的資訊添加到git倉庫的索引庫中,並沒有真正添加到庫。當然上例中的file檔案只是我們的樣本,它是一個路徑,因此,可以是檔案,更可以是目錄。

第5行:將索引庫中的內容向git倉庫進行提交。這步之後檔案file才算真正提交到拉git倉庫中。雙引號中的內容是根據每次修改的不同內容,由我們自己去填寫的,

很多人會看見

  git commit -a -m “ ”

這條的命令是在你已經add了一個或多個檔案過之後,然後修改了這些檔案,就可以使用該命令進行提交。

好了,不管怎麼樣,終於是將檔案提交到庫了。可是現在的倉庫只是一個本地的倉庫,我們的目標是變成遠程倉庫哦,繼續吧。

3.在本地倉庫添加一個遠程倉庫,並將本地的master分支跟蹤到遠程分支

1 software@debian:~/yafeng$ git remote add origin ssh://software@172.16.0.30/~/yafeng/.git2 software@debian:~/yafeng$ git push origin master3 software@172.16.0.30's password: 4 Everything up-to-date5 software@debian:~/yafeng$ 

命令注釋:

第1行:在本地倉庫添加一個遠程倉庫,當然ssh後面的地址是我們本地倉庫的地址.

第2行:將本地master分支跟蹤到遠程分支,在git倉庫建立之初就會有一個預設的master分支,當然你如果建立了其他分支,也可以用同樣的方法去跟蹤.

對於分支的事情,我們會在以後細細的講述.

做到拉這一步了嗎?我告訴你,你已經完成目的了哦,現在的git倉庫已經是一個遠程倉庫了,

不相信嗎?我們來測試一次阿:

4.測試

現在本機上看看:

 1 software@debian:~/yafeng$ git remote show origin 2 software@172.16.0.30's password:  3 * remote origin 4   Fetch URL: ssh://software@172.16.0.30/~/yafeng/.git 5   Push  URL: ssh://software@172.16.0.30/~/yafeng/.git 6   HEAD branch: master 7   Remote branch: 8     master tracked 9   Local ref configured for 'git push':10     master pushes to master (up to date)11 software@debian:~/yafeng$ 

代碼注釋:

第1行:顯示遠程資訊

很多看見這還是會不以為然的,這又能說明什麼呢?好,那就來點實際的:

在另一個機子上,遠程clone

 1 root@yafeng-VirtualBox:~# ls 2 bin  gittest  read_temp 3 root@yafeng-VirtualBox:~# git clone ssh://software@172.16.0.30/~/yafeng/.git 4 Cloning into yafeng... 5 software@172.16.0.30's password:  6 remote: Counting objects: 9, done. 7 remote: Compressing objects: 100% (3/3), done. 8 remote: Total 9 (delta 0), reused 0 (delta 0) 9 Receiving objects: 100% (9/9), done.10 root@yafeng-VirtualBox:~# ls11 bin  gittest  read_temp  yafeng12 root@yafeng-VirtualBox:~# cd yafeng/13 root@yafeng-VirtualBox:~/yafeng# ls14 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.