Git 远程仓库

仓库

Git 远程仓库为多人协作开发提供了极大的便捷,前面的 Git 操作都是在本地仓库上进行的,远程仓库是托管在因特网的或者自己搭建的 Git 服务,一个本地可以跟踪多个远程仓库,远程有读写权限,在 GitHub(最流行代码托管网站)上直接克隆的远程仓库没有写的权限,Fork 到自己帐户,则有读写权限。

$ git remote

这个命令是管理远程仓库的,几个常用命令和选项

  1. git remote 列出当前的远程仓库
  2. git remote -v 列出所有远程仓库和URL
  3. git remote add 添加远程仓库
  4. git remote remove 删除远程仓库
  5. git remote rename 远程仓库改名

克隆的仓库会有默认的远程仓库叫 origin, 并会创建默认 master 分支,跟踪远程仓库的默认分支 origin/master,远程仓库的分支要加上远程仓库名,以区分本地分支。
本地仓库添加远程仓库后需要先拉取远程仓库的提交,才可以向远程仓库推送

$ git fetch

从远程仓库拉取数据,可以用 checkout 签出分支,也可以用 merge 合并到本地分支

$ git pull

从远程仓库拉取数据,并合并到默认分支

$ git push

本地修改提交后,用这个命令推送到远程仓库,其他人就可以看到你的提交和修改了
这三个命令都可以在后面加上远程仓库名拉取、推送到指定的远程仓库

分支

远程仓库也有多个分支,使用 git branch -a 列出所有分支

$ git branch -a
* master
  remotes/m/master
  remotes/origin/master

显示完整路径的是远程分支,中间的是远程仓库名,后面为远程分支名
选项 -vv 显示本地分支跟踪的远程分支

$ git branch -vv
* master c4ffc28 [origin/master] new

本地分支可以自由切换跟踪的远程分支

  1. git checkout --track origin/master 本地新建 master 分支,并跟踪远程分支 origin/master
  2. git checkout -b new origin/master 本地新建 new 分支,跟踪远程分支 origin/master
  3. git branch -u origin/master 设置当前分支跟踪的远程分支
$ git branch -u  m/master
Branch master set up to track remote branch master from m.
$ git branch -vv
* master c4ffc28 [m/master: ahead 2] new

如果本地分支设置了远程分支,查看跟踪的远程分支时有 behind 则需要先 pull 拉取更新,才能向远程分支推送提交

$ git branch -vv
* master 2b3f489 [origin/master: ahead 7, behind 8] Merge branch 'dev'
远程分支新建、删除

在远程新建分支:git push <远程仓库><本地分支>:<远程分支>

$ git push m master:new
Counting objects: 10, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 663 bytes | 0 bytes/s, done.
Total 5 (delta 2), reused 0 (delta 0)
To git@github.com:Pythians/bbs-catch.git
 * [new branch]      master -> new

删除远程仓库分支: git push <远程仓库> --delete <远程分支>

 $ git push m --delete new
To git@github.com:Pythians/bbs-catch.git
 - [deleted]         new

当然也可以在托管的网站上新建、删除、修改默认远程分支,具体操作的托管的网站来。

远程分支一般用来和其他人合作开发,难免有同时修改的情况,合并就需要处理可能的冲突,总之在合并前,沟通好可以减少不必要的麻烦。

作者:H·K
出处:http://www.cnblogs.com/pythian/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果文中有什么错误,欢迎指出。以免更多的人被误导。
原文地址:https://www.cnblogs.com/pythian/p/4780438.html