標籤: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、從遠程倉庫中抓取
4、從遠程倉庫中拉取
5、推送到遠程倉庫
當你想分享你的項目時,必須將其推送到上遊。這個命令很簡單:git push [remote-name] [branch-name]
。當你想要將 master 分支推送到 origin 伺服器時(再次說明,複製時通常會自動幫你設定好那兩個名字),那麼運行這個命令就可以將你所做的備份到伺服器
# git push [remote-name] [branch-name]$ git push origin master
- 只有當你有所複製伺服器的寫入許可權,並且之前沒有人推送過時,這條命令才會生效。
當你和其他人在同一時間複製,他們先推送到上遊然後你再推送到上遊,你的推送就會毫無疑問地被拒絕。你必須先將他們的工作拉取下來並將其合并進你的工作後才能推送。
6、遠程倉庫的重新命名
7、遠程倉庫的移除
iOS - Git 遠程倉庫(分布式版本控制系統)