情形一: 查看远程仓库
命令:
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
通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支。