对于用户来说,git给人提交到本地的机会。我们可以在自己的机器上创建不同的branch,来测试和存放不同的代码。

对于代码管理员而言,git有许多优良的特性。管理着不同的分支,同一套源代码可以出不一样的版本。

市面上有非常多的相关书籍和教程。我个人比较喜欢的是:

ProGit(中文版)    http://git.oschina.net/progit/

关于git的master和origin    http://lishicongli.blog.163.com/blog/static/1468259020132125247302/

刚开始的时候我没注意master和origin这两个名称,直到操作远程分支的时候,我才有了比较多的了解

远程分支的操作

# 查看远程分支,会显示出远程分支名与url
$ git remote -v
origin    ssh://RustFisher@192.168.1.1:29418/workspace/product1 (fetch)
origin    ssh://RustFisher@192.168.1.1:29418/workspace/product1 (push)

这里采用gerrit来进行代码审核,用默认的29418端口

如何添加远程分支?

使用git remote add指令,例如:

$ git remote add r1 ssh://RustFisher@192.168.1.1:29418/work
# 添加一个远程分支,url为ssh://RustFisher@192.168.1.1:29418/work;分支别名为r1
# 查看已有的远程分支
$ git remote -v
r1    ssh://RustFisher@192.168.1.1:29418/work (fetch)
r1    ssh://RustFisher@192.168.1.1:29418/work (push)
# 这时使用git pull同步代码,git会问你要分支名
$ git pull
fatal: 未指定远程版本库。请通过一个URL或远程版本库名指定,用以获取新提交。
# 我们可以选择从r1库同步代码
$ git pull r1
# 如果不想每次git pull都写上分支名,那么可以把远程分支命名为origin,git会默认从这里pull
$ git remote rm r1
# 看看还有没有远程分支r1
$ git remote -v
# 开始添加
$ git remote add origin ssh://RustFisher@192.168.1.1:29418/work
$ git remote -v
origin    ssh://RustFisher@192.168.1.1:29418/work (fetch)
origin    ssh://RustFisher@192.168.1.1:29418/work (push)
# 添加成功,pull一次试试
$ git pull
另一个工程里,查看所有分支,包括远程分支
$ git branch -a
* working
  remotes/origin/demo1
  remotes/origin/HEAD -> origin/master
  remotes/origin/demo2
  remotes/origin/demo3
  remotes/origin/working
  remotes/origin/master
  remotes/origin/tab1 
#列出所有分支中,倒数5个
$ git branch -a |  

#表示强制切换到分支
$ git checkout -f [branch name] 

未跟踪远程分支

Ubuntu14.04 git version 1.9.1

远程代码库新增了一个目录,repo sync下来后,在新增目录里新建一个分支

git pull时出现如下错误

Please specify which branch you want to merge with.
See git-pull(1) for details
    git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
    git branch --set-upstream-to=origin/<branch> project-dev

那么按照提示,先找到远程分支

$ git branch -a
* project-dev
  remotes/m/Project-dev -> origin/Project-dev
  remotes/origin/Project-dev
  remotes/origin/master

当前分支为project-dev;想要跟踪origin/Project-dev,输入以下命令:

$ git branch --set-upstream-to=origin/Project-dev project-dev

分支 project-dev 设置为跟踪来自 origin 的远程分支 Project-dev

设置后,git pull试一试

Already up-to-date.

对于Github,新建一个仓库后会有提示

git remote add origin https://github.com/RustFisher/test.git
git push -u origin master

附录

用法:git remote [-v | --verbose]

或:git remote add [-t <分支>] [-m <master>] [-f] [--tags|--no-tags] [--mirror=<fetch|push>] <名称> <url>

或:git remote rename <旧名称> <新名称>

或:git remote remove <名称>

或:git remote set-head <名称> (-a | --auto | -d | --delete |<分支>)

或:git remote [-v | --verbose] show [-n] <名称>

或:git remote prune [-n | --dry-run] <名称>

或:git remote [-v | --verbose] update [-p | --prune] [(<组> | <远程>)...]

或:git remote set-branches [--add] <名称> <分支>...

或:git remote set-url [--push] <名称> <新的地址> [<旧的地址>]

或:git remote set-url --add <名称> <新的地址>

或:git remote set-url --delete <名称> <地址>

-v, --verbose         冗长输出;必须置于子命令之前

git - 远程分支的更多相关文章

  1. git 远程分支创建与推送

    git 远程分支创建与推送   原文地址:http://hi.baidu.com/lingzhixu/blog/item/4a9b830bb08a329fe850cd5b.html 本地分支的创建 本 ...

  2. Git 远程分支的pull与push

    Git 远程分支的pull与push 远程分支信息查看 git branch -r #查看远程分支 git branch -a #查看所有分支,本地和远程 git remote show [remot ...

  3. git远程分支创建,本地分支关联远程分支,第一次发布、更新分支

    git远程分支创建,本地分支关联远程分支,第一次发布.更新分支 github托管服务器地址为https://github.com git提交更新代码示意图: 本地与远程进行免密码配置(本地与远程关联) ...

  4. git 远程分支和tag标签的操作

    git远程分支操作:1.创建远程分支git push --set-upstream origin develop:develop2在服务器创建远程分支devlop2,让本地的develop分支和dev ...

  5. git远程分支

    1. 同步远程服务器上的数据到本地 git fetch origin 2. 添加远程分支 git remote add teamone git://git.tram1.ourcompany.com 添 ...

  6. 如何删除git远程分支

    1,在开发过程中,大家在远程创建了许多分支,有些是无用的,该如何删除呢,可以参考下面的方法. 如果不再需要某个远程分支了,比如搞定了某个特性并把它合并进了远程的 master 分支(或任何其他存放 稳 ...

  7. git远程分支--remote

    查看所有远程引用: $ git ls-remote From ssh://someone@example/testgit ebf3ef7551603cd57a699e80db0bfab36d1aa7b ...

  8. git 远程分支回滚

    git代码库回滚: 指的是将代码库某分支退回到以前的某个commit id [本地代码库回滚]: git reset --hard commit-id :回滚到commit-id,讲commit-id ...

  9. Git远程分支的回退

    下午发现上午提交的一个版本有问题,在回退本地分支后,发现还必须要回退远程分支的版本.网上查找到的资料如下: #新建old_master分支做备份 git branch old_master #push ...

随机推荐

  1. JavaSE教程-03深入探究原码,反码,补码-扩展

    1.原码,反码,补码的基础概念和计算方法 在搞清楚为什么计算机要使用补码之前,我们先搞清楚一个基本知识点,就是原码,反码,补码的计算方式. 对于一个数,计算机要使用一定的编码方式进行存储,原码,反码, ...

  2. 【JAVAWEB学习笔记】网上商城实战5:后台的功能模块

    今日任务 完成后台的功能模块 1.1      网上商城的后台功能的实现: 1.1.1    后台的功能的需求: 1.1.1.1  分类管理: [查询所有分类] * 在左侧菜单页面中点击分类管理: * ...

  3. 使用React改版网站后的一些感想

    文章转载:http://www.jianshu.com/p/8f74cfb146f7 网站是毕业设计的作品,开发这个网站的目的主要用于记录一些笔记,以及聚合一些资讯信息,也算自己在网络世界中的一块静地 ...

  4. JavaScript中Object的总结

    基于原型继承,动态对象扩展,闭包,JavaScript已经成为当今世界上最灵活和富有表现力的编程语言之一. 这里有一个很重要的概念需要特别指出:在JavaScript中,包括所有的函数,数组,键值对和 ...

  5. jsonp跨域再谈

    昨天面试雷锋网,问到了jsonp跨域的问题,其实这个问题之前就会的,没有多大的深入,记得有一个名词在跨域中出现,就是同源机制, JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在J ...

  6. 【Selenium】Selenium1

    一.Selenium1组件 (1)Selenium服务器,负责启动关闭浏览器:解释和运行从测试程序中传来的Selenium命令:HTTP代理:获取和验证在浏览器和被测试的应用程序之间的传递的HTTP消 ...

  7. python装饰器大详解

    1.作用域 在python中,作用域分为两种:全局作用域和局部作用域. 全局作用域是定义在文件级别的变量,函数名.而局部作用域,则是定义函数内部. 关于作用域,我要理解两点:a.在全局不能访问到局部定 ...

  8. 在vue 中使用Stylus

    概述 什么是Stylus Stylus是一个CSS预处理器. 什么是CSS预处理器 关于CSS预处理器,推荐先行阅读这篇文章:为您详细比较三个 CSS 预处理器(框架):Sass.LESS 和 Sty ...

  9. java架构师负载均衡、高并发、nginx优化、tomcat集群、异步性能优化、Dubbo分布式、Redis持久化、ActiveMQ中间件、Netty互联网、spring大型分布式项目实战视频教程百度网盘

    15套Java架构师详情 * { font-family: "Microsoft YaHei" !important } h1 { background-color: #006; ...

  10. MySQL错误2003:Can't connect to MySQL server (10060)

    1.网络不通. 检查能不能ping通. 2.防火墙设置. 防火墙是否放过mysql的进程,是否屏蔽了mysql的3306端口. 3.mysql的账户设置. mysql账户是否不允许远程连接.如果无法连 ...