热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

11.Git分支远程跟踪分支的概念、多个远程仓库的使用

远程引用是对远程仓库的引用,包括分支、标签等等。 1.可以通过 gitls-remote<remote> 来获得远程引用

  远程引用是对远程仓库的引用,包括分支、标签等等。

 1.可以通过 git ls-remote  来获得远程引用的完整列表

 2.git remote show  来获取远程分支的更多相关信息。

 如下图所示,运行 git remote show origin 可以得到有哪些远程分支,pull和push分别是与哪个远程仓库交互。

11.Git分支-远程跟踪分支的概念、多个远程仓库的使用

  远程跟踪分支:远程跟踪分支是远程分支状态的引用,它们是你不能够移动的本地引用,记录的是你上次连接到远程仓库时,远程分支所处的状态,例如:一般本地会存在一个远程跟踪分支origin/master,跟踪的是远程分支master的状态(这个master是远程分支master,不是本地分支master)。

  假设你的网络里有一个在 git.ourcompany.com 的Git服务器。 如果你从这里克隆,Git 的 clone 命令会为你自动将其命名为 origin,拉取它的所有数据,创建一个指向它的 master 分支的指针,并且在本地将其命名为 origin/master。 Git 也会给你一个与 origin 的 master分支在指向同一个地方的本地 master 分支,这样你就有工作的基础。

  如果你向远端推送了一个分支dev,那么远端会产生dev分支,在本地对应的会有一个指向远端分支的origin/dev指针,也就是远程跟踪分支。

如下图所示,远程仓库有一个分支称作为master,其在本地仓库对应着一个远程跟踪分支origin/master,同时本地还有一个称作为master的本地分支。

11.Git分支-远程跟踪分支的概念、多个远程仓库的使用

  当你在本地master上做了一些提交操作之后,同时其他同事提交了更新到远程分支master,这时候远程分支与本地分支的情况可能会出现如下情况:

11.Git分支-远程跟踪分支的概念、多个远程仓库的使用  可以发现,远程跟踪分支origin/master并没有发生移动,本地master和远程仓库master朝着不同的方向在发展。也就是说,只要你不与远程仓库进行连接,远程跟踪分支就不会发生变化。

  现在远程仓库有了新的更新,你需要获取这些更新到你的本地仓库,可以运行

 git fetch origin ,会从远程仓库抓取本地没有的数据,并且更新到本地数据库,移动远程跟踪分支origin/master指向新的、更新之后的位置。

这条命令会将远程仓库master分支上的内容拉取到远程跟踪分支origin/master下面,并不会是拉取到本地分支master下,工作区的内容不会发生改变。如下图所示:

11.Git分支-远程跟踪分支的概念、多个远程仓库的使用

  在抓取了远程分支的代码之后,可以将其merge进本地分支master中,使用 git merge origin/master 。

2.多个远程仓库的使用

  有时候,会存在多个远程仓库,比如有时候会存在一个远程仓库,主要用于你们内部小组的开发工作,这个远程仓库是从另一个远程仓库fork过来的。这时候,你可以运行 git remote add  ,添加一个远程仓库引用到当前项目,那么你就可以运行 git fetch  来得到你新加的远程仓库的代码了。

  例子:

  你fork了一个远程仓库A到自己的GitHub账号下,名字为B,然后你将自己账号下的B仓库 clone到了本地,进行了一些提交操作,这时候,你发现原始的A有了一些更新,这时候,你可以通过git remote add A和git fetch A将原始仓库A的更新抓取到本地,然后进行merge之后,再将自己本地仓库进行的相关工作一起提交到远程仓库B,然后给远程仓库A发pull request操作来合并你所进行的开发工作到A仓库。(https://www.cnblogs.com/morethink/p/8907980.html)

  还有一种方法,可以在GItHub网站上,直接从A将所有的更新拉取到B,通过new 一个pull request就可以了。(https://www.cnblogs.com/eyunhua/p/8463200.html)

 


推荐阅读
  • ps:写的第一个,不足之处,欢迎拍砖---只是想用自己的方法一步步去实现一些框架看似高大上的小功能(比如说模型中的toArraytoJsonsetAtt ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 在编写业务代码时,常常会遇到复杂的业务逻辑导致代码冗长混乱的情况。为了解决这个问题,可以利用中间件模式来简化代码逻辑。中间件模式可以帮助我们更好地设计架构和代码,提高代码质量。本文介绍了中间件模式的基本概念和用法。 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • JavaWeb中读取文件资源的路径问题及解决方法
    在JavaWeb开发中,读取文件资源的路径是一个常见的问题。本文介绍了使用绝对路径和相对路径两种方法来解决这个问题,并给出了相应的代码示例。同时,还讨论了使用绝对路径的优缺点,以及如何正确使用相对路径来读取文件。通过本文的学习,读者可以掌握在JavaWeb中正确找到和读取文件资源的方法。 ... [详细]
  • 初始化初始化本地空版本库,仓库,英文名repositorymkdirtest&&cdtestgitinit克隆项目到本地gitclone远程同 ... [详细]
  • Imdevelopinganappwhichneedstogetmusicfilebystreamingforplayinglive.我正在开发一个应用程序,需要通过流 ... [详细]
  • 先记住几个专用名词,如下:Workspace:工作区IndexStage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库#在当前目录新建一个G ... [详细]
  • 这篇文章给大家介绍怎么从源码启动和编译IoTSharp ,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。IoTSharp项目是 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文是一篇翻译文章,介绍了async/await的用法和特点。async关键字被放置在函数前面,意味着该函数总是返回一个promise。文章还提到了可以显式返回一个promise的方法。该特性使得async/await更易于理解和使用。本文还提到了一些可能的错误,并希望读者能够指正。 ... [详细]
  • struts2重点——ValueStack和OGNL
    一、值栈(ValueStack)1.实现类:OGNLValueStack2.对象栈:CompoundRoot( ... [详细]
  • PHP连接MySQL的2种方法小结以及防止乱码【PHP】
    后端开发|php教程PHP,MySQL,乱码后端开发-php教程PHP的MySQL配置报错信息:ClassmysqlinotfoundinAnswer:1.在confphp.ini ... [详细]
  • 修正我的GitHub commit 数据
    早晨上班,滴滴搭车里,我在掘金这个帖子看到大家晒自己的Github活跃记录,我也晒了下自己的记录。不过太少了。有遗漏的commits状况这也让我知道,自己觉得自己很忙的,实际上提交 ... [详细]
  • PHP操作MySql数据库_PHP教程:链接数据库$conn@mysql_connect(localhost,root,88888888)ordie(链接错误);解决中文乱码mys ... [详细]
author-avatar
掩不住的心
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有