情形一: 查看遠程倉庫
命令:
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
通常會從最初克隆的服務器上抓取數據并自動嘗試合并到當前所在的分支。