2016-10-12 Git 基礎(五)- 遠程倉庫的使用

情形一: 查看遠程倉庫

命令: git remote 列出每一個遠程的簡寫

命令: git remote -v 會顯示需要讀寫遠程倉庫使用的 Git 保存的簡寫與其對應的 URL

git remote 列出每一個遠程的簡寫

?  git_test git:(master) git remote
origin

git remote -v 會顯示需要讀寫遠程倉庫使用的 Git 保存的簡寫與其對應的 URL

?  git_test git:(master) git remote -v
origin  https://github.com/xuguotao/git_test.git (fetch)
origin  https://github.com/xuguotao/git_test.git (push)

情形二: 添加遠程倉庫

命令:git remote add <name> <url>

?  git_test git:(master) git remote add abc https://github.com/xuguotao/git_test_new.git
?  git_test git:(master) git remote -v
abc https://github.com/xuguotao/git_test_new.git (fetch)
abc https://github.com/xuguotao/git_test_new.git (push)
origin  https://github.com/xuguotao/git_test.git (fetch)
origin  https://github.com/xuguotao/git_test.git (push)

情形三: 推送到遠程倉庫

命令: git push <remote-name> <branch-name>

只有當你有所克隆服務器的寫入權限,并且之前沒有人推送過時,這條命令才能生效。 當你和其他人在同一時間克隆,他們先推送到上游然后你再推送到上游,你的推送就會毫無疑問地被拒絕。 你必須先將他們的工作拉取下來并將其合并進你的工作后才能推送

?  git_test git:(master) git push abc
Username for 'https://github.com': xuguotao1984@163.com
Password for 'https://xuguotao1984@163.com@github.com':
Counting objects: 17, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (17/17), 1.42 KiB | 0 bytes/s, done.
Total 17 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), done.
To https://github.com/xuguotao/git_test_new.git
 * [new branch]      master -> master

情形四: 查看遠程倉庫

命令: git remote show <remote-name>

這個命令列出了當你在特定的分支上執行 git push 會自動地推送到哪一個遠程分支。 它也同樣地列出了哪些遠程分支不在你的本地,哪些遠程分支已經從服務器上移除了,還有當你執行 git pull 時哪些分支會自動合并

?  git_test git:(master) git remote show origin
* remote origin
  Fetch URL: https://github.com/xuguotao/git_test.git
  Push  URL: https://github.com/xuguotao/git_test.git
  HEAD branch: master
  Remote branch:
    master 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)

情形五: 遠程倉庫的移除與重命名

命令: git remote rename <original-name> <new-name>

命令: git remote rm <remote-name>

?  git_test git:(master) git remote show
abc
origin
?  git_test git:(master) git remote rename abc aaa
?  git_test git:(master) git remote -v
aaa https://github.com/xuguotao/git_test_new.git (fetch)
aaa https://github.com/xuguotao/git_test_new.git (push)
origin  https://github.com/xuguotao/git_test.git (fetch)
origin  https://github.com/xuguotao/git_test.git (push)
?  git_test git:(master) git remote rm aaa
?  git_test git:(master) git remote -v
origin  https://github.com/xuguotao/git_test.git (fetch)
origin  https://github.com/xuguotao/git_test.git (push)

情形六: 從遠程倉庫抓取與拉取

命令: git fectch <remote-name>

如果你使用 clone 命令克隆了一個倉庫,命令會自動將其添加為遠程倉庫并默認以 “origin” 為簡寫。 所以,git fetch origin 會抓取克隆(或上一次抓取)后新推送的所有工作。 必須注意 git fetch 命令會將數據拉取到你的本地倉庫 - 它并不會自動合并或修改你當前的工作。 當準備好時你必須手動將其合并入你的工作。

命令: git pull

如果你有一個分支設置為跟蹤一個遠程分支(閱讀下一節與 Git 分支 了解更多信息),可以使用 git pull 命令來自動的抓取然后合并遠程分支到當前分支。 這對你來說可能是一個更簡單或更舒服的工作流程;默認情況下,git clone 命令會自動設置本地 master 分支跟蹤克隆的遠程倉庫的 master 分支(或不管是什么名字的默認分支)。 運行 git pull 通常會從最初克隆的服務器上抓取數據并自動嘗試合并到當前所在的分支。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容