远程仓库可以被托管在因特网上,也可以被托管在内网网络中,同样也可以被部署在我们的本机上。
“远程”不一定就表示仓库在网络或互联网上,而是表示仓库在别处。
在操作远程仓库时,需要推送或拉取数据。
在管理远程仓库时,需要了解添加远程仓库、移除远程仓库、管理分支等。
对远程仓库进行操作时,可以分为这几步:
- 查看远程仓库;
- 添加远程仓库;
- 远程仓库的重命名;
- 从远程仓库拉取数据;
- 推送数据到远程仓库;
- 远程仓库的移除。
一、查看远程仓库
运行git remote
命令,可以查看已经配置的远程仓库。
可以看到执行命令后的结果——origin
,这是git克隆仓库服务器时起的默认名字。
也可以指定选项-v
,结果会显示需要读写远程仓库使用的git保存的简写与其对应的url。例如,执行git remote -v
命令,结果展示如下:
如果所在的目录下,存在多个远程仓库,那么执行这条命令会将它们全部列出。
其中每行后边()
内的fetch
表示拉取权限,push
表示推送权限。
可以执行git remote show <remote>
命令,查看一个远程仓库更多的信息。如下图所示:
从列出的信息中,可以看到:
- 远程仓库的url;
- 跟踪分支的信息;
- 当前所处的分支;
- 哪些分支不在你的本地,哪些分支已经从服务器上移除了;
- 运行
git pull
会发生的事; - 运行
git push
会发生的事。
二、添加远程仓库
在以前的章节中,用git clone
命令克隆远程仓库,也是一种添加远程仓库的方法。
在这里有另一种方式可以添加新的远程仓库,那就是运行git remote add <shortname> <url>
命令。
例:
git remote add test https://github.com/levi_moon/test
可以同test
来代替整个url,例如我们想拉取test仓库中的数据时,可以执行git fetch test
命令,这样就把库中有,但是我没有的数据拉取下来了。
三、远程仓库的重命名
可以运行git remote rename
命令来修改远程仓库的简写名字。
例:想要将test
重命名为learngit
,那么就可以执行这条命令:
git remote rename test learngit
注意:同时会修改所有远程跟踪的分支名字,以前引用的test/master
现在会引用learngit/master
。
四、从远程仓库拉取数据
从远处仓库拉取数据,可以执行git fetch <remote>
命令。这条命令会访问远程仓库,从中拉取所有我们这里还没有的数据。执行完成这条命令后,我们会拥有被拉取的远程仓库中所有分支的引用。
git fetch
命令只是将数据下载到本地仓库,并不会自动合并或修改当前的数据,如果希望合并数据,需要我们手动去合并。
如果希望git自动帮我们合并数据, 可以执行git pull
命令,执行这条命令时,git会自动拉取数据并合并到当前分支。
五、推送数据到远程仓库
当希望分享我的项目时,可以使用git push <remote> <branch>
命令。
当推送时,必须保证别人没有推送,如果在我推送之前,有其他人已经推送过了,那么我的推送会被拒绝,那么我必须先拉取其他人的推送,并合并到我的分支后才能继续推送。
六、远程仓库的移除
如果希望移除一个远程仓库,可以使用git remote remove
或git remote rm
命令。
例:
git remote remove learngit
注意:一旦使用了这种方式删除远程仓库,那么所有和这个远程仓库相关的远程跟踪分支及配置信息也被一起删除了。