iOS - Git 遠程倉庫(分布式版本控制系統)

來源:互聯網
上載者:User

標籤:object   http   one   倉庫   應該   版本庫   跟蹤   https   issue   

前言
  • 遠程倉庫是指託管在網際網路或其他網路中的你的項目的版本庫。你可以有好幾個遠程倉庫,通常有些倉庫對你唯讀,有些則可以讀寫。
1、查看遠程倉庫
  • 如果想查看你已經配置的遠程倉程式庫伺服器,可以運行 git remote 命令。它會列出你指定的每一個遠程伺服器的簡寫。如果你已經複製了自己的倉庫,那麼至少應該能看到 origin,這是 Git 給你複製的倉程式庫伺服器的預設名字。

    $ git remote
    origin
  • 你也可以指定選項 -v,會顯示需要讀寫遠程倉庫使用的 Git 儲存的簡寫與其對應的 URL。

    $ git remote -v
    origin  https://github.com/schacon/ticgit (fetch)origin  https://github.com/schacon/ticgit (push)
    • 如果你的遠程倉庫不止一個,該命令會將它們全部列出。例如,與幾個共同作業者合作的,擁有多個遠程倉庫的倉庫看起來像下面這樣。

      $ git remote -vbakkdoor  https://github.com/bakkdoor/grit (fetch)bakkdoor  https://github.com/bakkdoor/grit (push)cho45     https://github.com/cho45/grit (fetch)cho45     https://github.com/cho45/grit (push)defunkt   https://github.com/defunkt/grit (fetch)defunkt   https://github.com/defunkt/grit (push)koke      git://github.com/koke/grit.git (fetch)koke      git://github.com/koke/grit.git (push)origin    [email protected]:mojombo/grit.git (fetch)origin    [email protected]:mojombo/grit.git (push)
  • 如果想要查看某一個遠程倉庫的更多資訊,可以使用 git remote show [remote-name] 命令。

    # git remote show [remote-name]$ git remote show origin
    • 如果想以一個特定的縮寫名運行這個命令,例如 origin,會得到像下面類似的資訊。

      $ git remote show origin* remote origin  Fetch URL: https://github.com/schacon/ticgit  Push  URL: https://github.com/schacon/ticgit  HEAD branch: master  Remote branches:    master                               tracked    dev-branch                           tracked  Local branch configured for 'git pull':    master merges with remote master  Local ref configured for 'git push':    master pushes to master (up to date)
    • 它同樣會列出遠程倉庫的 URL 與跟蹤分支的資訊。這些資訊非常有用,它告訴你正處於 master 分支,並且如果運行 git pull,就會抓取所有的遠端參照,然後將遠程 master 分支合并到本地 master 分支。它也會列出拉取到的所有遠端參照。

    • 如果你是 Git 的重度使用者,那麼還可以通過 git remote show 看到更多的資訊。

      $ git remote show origin* remote origin  URL: https://github.com/my-org/complex-project  Fetch URL: https://github.com/my-org/complex-project  Push  URL: https://github.com/my-org/complex-project  HEAD branch: master  Remote branches:    master                           tracked    dev-branch                       tracked    markdown-strip                   tracked    issue-43                         new (next fetch will store in remotes/origin)    issue-45                         new (next fetch will store in remotes/origin)    refs/remotes/origin/issue-11     stale (use 'git remote prune' to remove)  Local branches configured for 'git pull':    dev-branch merges with remote dev-branch    master     merges with remote master  Local refs configured for 'git push':    dev-branch                     pushes to dev-branch                     (up to date)    markdown-strip                 pushes to markdown-strip                 (up to date)    master                         pushes to master                         (up to date)
    • 這個命令列出了當你在特定的分支上執行 git push 會自動地推送到哪一個遠程分支。它也同樣地列出了哪些遠程分支不在你的本地,哪些遠程分支已經從伺服器上移除了,還有當你執行 git pull 時哪些分支會自動合并。

2、添加遠程倉庫
  • 運行 git remote add [shortname] [url] 添加一個新的遠程 Git 倉庫,同時指定一個你可以輕鬆引用的簡寫。

    # git remote add [shortname] [url]$ git remote add pb https://github.com/paulboone/ticgit
    $ git remote -vorigin  https://github.com/schacon/ticgit (fetch)origin  https://github.com/schacon/ticgit (push)pb  https://github.com/paulboone/ticgit (fetch)pb  https://github.com/paulboone/ticgit (push)
    • 現在你可以在命令列中使用字串 pb 來代替整個 URL。例如,如果你想拉取 Paul 的倉庫中有但你沒有的資訊,可以運行 git fetch pb

      $ git fetch pbremote: Counting objects: 43, done.remote: Compressing objects: 100% (36/36), done.remote: Total 43 (delta 10), reused 31 (delta 5)Unpacking objects: 100% (43/43), done.From https://github.com/paulboone/ticgit * [new branch]      master     -> pb/master * [new branch]      ticgit     -> pb/ticgit
    • 現在 Paul 的 master 分支可以在本地通過 pb/master 訪問到 - 你可以將它合并到自己的某個分支中,或者如果你想要查看它的話,可以檢出一個指向該點的本地分支。

3、從遠程倉庫中抓取
  • 從遠程倉庫中獲得資料,可以執行 git fetch [remote-name]。這個命令會訪問遠程倉庫,從中拉取所有你還沒有的資料。

    # git fetch [remote-name]    $ git fetch origin
    • 執行完成後,你將會擁有那個遠程倉庫中所有分支的引用,可以隨時合并或查看。
    • 必須注意 git fetch 命令會將資料拉取到你的本地倉庫,它並不會自動合并或修改你當前的工作,當準備好時你必須手動將其合并入你的工作。
    • 如果你使用 clone 命令複製了一個倉庫,命令會自動將其添加為遠程倉庫並預設以 “origin” 為簡寫。所以,git fetch origin 會抓取複製(或上一次抓取)後新推送的所有工作。
4、從遠程倉庫中拉取
  • 如果你有一個分支設定為跟蹤一個遠程分支,可以使用 git pull 命令來自動的抓取然後合并遠程分支到當前分支。

    $ git pull
    • 運行 git pull 通常會從最初複製的伺服器上抓取資料並自動嘗試合并到當前所在的分支。
    • 預設情況下,git clone 命令會自動化佈建本地 master 分支跟蹤複製的遠程倉庫的 master 分支(或不管是什麼名字的預設分支)。
5、推送到遠程倉庫
  • 當你想分享你的項目時,必須將其推送到上遊。這個命令很簡單:git push [remote-name] [branch-name]。當你想要將 master 分支推送到 origin 伺服器時(再次說明,複製時通常會自動幫你設定好那兩個名字),那麼運行這個命令就可以將你所做的備份到伺服器

    # git push [remote-name] [branch-name]$ git push origin master
    • 只有當你有所複製伺服器的寫入許可權,並且之前沒有人推送過時,這條命令才會生效。
  • 當你和其他人在同一時間複製,他們先推送到上遊然後你再推送到上遊,你的推送就會毫無疑問地被拒絕。你必須先將他們的工作拉取下來並將其合并進你的工作後才能推送。

6、遠程倉庫的重新命名
  • 如果想要重新命名引用的名字可以運行 git remote rename 去修改一個遠程倉庫的簡寫名。

    # git remote rename [old-shortname] [new-shortname]$ git remote rename pb paul
    • 例如,想要將 pb 重新命名為 paul,可以用 git remote rename 這樣做。

      $ git remote rename pb paul$ git remoteoriginpaul
    • 值得注意的是這同樣也會修改你的遠程分支名字。那些過去引用 pb/master 的現在會引用 paul/master。

7、遠程倉庫的移除
  • 如果因為一些原因想要移除一個遠程倉庫,可以使用 git remote rm

    # git remote rm [shortname]$ git remote rm paul
    $ git remoteorigin

iOS - Git 遠程倉庫(分布式版本控制系統)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.