什么是跟踪分支?

2023-12-23

有人可以解释一下适用于 git 的“跟踪分支”吗?

这是来自的定义git-scm.com https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches:

Git 中的“跟踪分支”是本地分支 连接到远程的分支 分支。当你推拉它时 分支,它会自动推送并 拉取到远程分支 与连接。

如果您总是从 相同的上游分支进入新的 分支,如果你不想使用 明确地“git pull”。

不幸的是,作为 git 新手并且来自 SVN,这个定义对我来说完全没有意义。

我正在读“Git 实用指南 http://www.pragprog.com/titles/pg_git/pragmatic-guide-to-git“(顺便说一句,很棒的书),他们似乎建议跟踪分支是一件好事,并且在创建第一个远程(在本例中为原始)后,您应该将主分支设置为跟踪分支,但不幸的是它没有涵盖为什么跟踪分支是一件好事 or 将主分支设置为原始存储库的跟踪分支可以获得什么好处.

有人可以启发我吗(英语)?


The ProGit 书籍 http://git-scm.com/book has 一个很好的解释 http://git-scm.com/book/en/Git-Branching-Remote-Branches#_tracking_branches:

追踪分支机构

从远程分支检出本地分支会自动创建所谓的跟踪分支。跟踪分支是与远程分支有直接关系的本地分支。如果您位于跟踪分支并输入git push,Git 自动知道要推送到哪个服务器和分支。另外,跑步git pullwhile 在这些分支之一上获取所有远程引用,然后自动合并到相应的远程分支中。

当您克隆存储库时,它通常会自动创建一个跟踪 origin/master 的 master 分支。这就是为什么git push and git pull开箱即用,没有其他参数。但是,如果您愿意,您可以设置其他跟踪分支 - 不跟踪源分支且不跟踪主分支的分支。简单的情况就是您刚刚看到的示例,运行git checkout -b [branch] [remotename]/[branch]。如果您有 Git 版本 1.6.2 或更高版本,您还可以使用--track速记:

$ git checkout --track origin/serverfix
Branch serverfix set up to track remote branch refs/remotes/origin/serverfix.
Switched to a new branch "serverfix"

要设置与远程分支名称不同的本地分支,您可以轻松使用具有不同本地分支名称的第一个版本:

$ git checkout -b sf origin/serverfix
Branch sf set up to track remote branch refs/remotes/origin/serverfix.
Switched to a new branch "sf"

现在,您当地的分支机构sf会自动推入和拉出origin/serverfix.

奖金:额外git status info

有了跟踪分支,git status会告诉你你的跟踪分支落后了多远 - 提醒你你还没有推送你的更改!它看起来像这样:

$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

or

$ git status
On branch dev
Your branch and 'origin/dev' have diverged,
and have 3 and 1 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是跟踪分支? 的相关文章

  • Git 克隆致命

    我在执行 git clone 时遇到错误 fatal pack has bad object at offset 824775943 inflate returned 1 fatal index pack failed 它仅适用于 Wind
  • 致命:早期 EOF 致命:索引包失败

    我用谷歌搜索并找到了很多解决方案 但没有一个适合我 我试图通过连接到 LAN 网络中的远程服务器来从一台计算机进行克隆 从另一台机器运行此命令会导致错误 但是在服务器上使用 git 192 168 8 5 运行相同的克隆命令 一切正常并且成
  • 在 Windows 上将 Mercurial (hg) 存储库转换为 Git (7)

    我现在真的很沮丧 我有一个现有的 hg 存储库 其中有几个月的编码历史 我想将其放入私有 Github 存储库中 以便我可以从那里对其进行处理 不幸的是我使用的是 Windows 我似乎找不到any转换我实际上可以正常工作的存储库的方法 实
  • 将 svn 存储库添加到现有的 git 存储库中?

    我知道你可以使用 git svn init 来跟踪 svn 存储库 但这是为了你想创建一个全新的存储库 我的情况是 我目前已经有一个现有的 git 存储库 并且希望通过将 svn 存储库设为我当前 git 存储库中的远程分支来跟踪 svn
  • 版本控制中的平分是否受益于使用 rebaseif 工作流程?

    rebaseif Mercurial 扩展会在拉取时自动执行变基过程 前提是合并可以自动完成而不会发生冲突 如果存在需要手动解决的冲突 它不会变基 让您准备好手动合并两个分支 当开发人员在代码的不同部分工作时 这会简化和线性化历史记录 尽管
  • 有关多个远程存储库的 Git 状态

    我有一个脚本 如果我忘记在 40 多个存储库中提交或推送一些代码 它会通过电子邮件向我发送提醒 在我的两个项目中 我遵循了这些帖子中的答案 其中我设置了 git push 来推送到多个存储库 从多个远程位置拉 推 https stackov
  • web2py git 集成 - localhost 和 pythonanywhere

    我完全不知道如何将 Github 集成到 web2py 中 我在 USB 上安装了 web2py任何地方的Python http www pythonanywhere com web2py概述文档chapter3http web2py co
  • git for-each-ref - 按年龄过滤结果

    我正在使用以下命令here https stackoverflow com a 39251131 5812876 git for each ref format color cyan authordate format m d Y I M
  • 使用 TortoiseGit 创建 git 克隆时出现 SSL 证书问题

    我想在 TortoiseGit 的帮助下克隆 git 存储库 但出现错误 错误 SSL 证书有问题 请验证 CA 证书是否正常 细节 错误 14090086 SSL 例程 SSL3 GET SERVER CERTIFICATE 访问时证书验
  • 如何使用“gem install”命令从私有 GitHub 存储库安装 gem

    如何在本地安装托管在 GitHub 上的私人存储库中的 gem 特别是 我们通过gem install命令而不是在 Bundler 中使用 因为它是一个命令行工具 我尝试这样做 gem install githubname repo s h
  • 如何标记单个文件?或如何下载特定文件? - 胃肠道

    我想向文件添加标签以轻松下载该文件而不是整个分支 如何下载GIT中的特定文件 我不知道有什么方法可以标记特定文件git 对于第二个问题 如何下载特定文件git 仅当您的意思是 同时下载 时 以下内容才有效in a git存储库 这就是我理解
  • 在 GitHub 上执行拉取请求时避免不需要的合并提交和其他提交

    我在 Github 上分叉了一个项目 令远程上游为upstream我的远程存储库是origin 我当地的master分支设置为跟踪远程master分支 然后我在本地添加了一些东西master 时不时与上游汇合 直到今天我想发出pull re
  • Git 中的“分支提示”是什么?

    我正在学习 Git 并阅读专业 Git 书籍 https git scm com book en v2 书中和 Stack Overflow 上有时会使用术语 分支提示 但我找不到它的含义 分支提示是分支上的最后一次提交或最近一次提交 基本
  • 有人熟悉 git 错误“缺少对象 0000000000000000000000000000000000000000 for refs/heads/...”吗?

    我们正在运行 git v1 7 1 并配置了 gitweb 我们也使用 gitolite 进行管理 但我不认为这与这个问题有密切关系 有时我们会在 Apache 日志中收到如下错误 missing object 00000000000000
  • 如何使用 ClearCase 执行递归结帐?

    我想查看指定文件夹的所有子目录中的所有文件 使用 GUI 来执行此操作很痛苦 因为没有递归结帐选项 请注意 ClearCase 以文件为中心 而不是以存储库为中心 如 SVN 或 CVS 这意味着签出所有文件很少是一个好的解决方案 并且使用
  • git checkout 到分支需要很长时间

    我使用的是 Ubuntu 17 10 并且使用 git 版本 2 14 1 每当我从 master 创建一个分支并尝试签出它 或从它签出到 master 时 都会花费大量时间 大约几分钟 有时接近 10 分钟 确实 我有几 GB 的数据 但
  • Eclipse 在源代码管理中保存操作

    我们希望找到一种在签入之前执行代码标准的 轻量级 方法 我们真的很喜欢使用 Eclipse 内置的想法保存操作 go to Preferences gt gt Java gt gt Editor gt gt Save Actions 其中有
  • Visual Studio Code 内置故事,用于查看 git 提交历史记录并对其内容进行比较

    In this https stackoverflow com questions 37899765 how can i view the git history in visual studio code 60013101 noredir
  • 在 Web 应用程序中显示最新的提交值?

    我有一些 Rails 应用程序 我使用 Git 作为版本控制系统 我使用 GitHub 或 Beanstalk 作为存储库主机 从理论上讲 我想要做的事情非常简单 以某种方式在 Web 应用程序的页脚中显示最新的提交 ID 号 哈希值 这样
  • 如何解决 VS Code 中变基拉取的合并冲突?

    当我做一个git pull rebase 并且我的提交中存在合并冲突 我得到冲突差异视图 解决所有冲突并暂存文件 然后呢 我可以打开终端并运行git rebase continue但是 VS Code 中不应该有一个按钮来完成变基吗 只需使

随机推荐

  • 如何保持 psobject 有序?

    我有以下脚本 它从另一个脚本获取对象并将其转换为 pscustomobject script1 ps1 ViewConnection cinput OutVariable xprtOut Format Table Wrap converti
  • “Where”子句中的动态表达式 - Linq to SQL

    我是 LINQ 的新手 所以我希望这不是一个愚蠢的问题 我有一个在数据网格中显示大量内容的表格 我希望用户能够通过使用网格上方的一些组合框 如搜索栏 来过滤网格 我创建了一个方法 它获取组合框中的文本 并将其放置在 Where 子句中 pu
  • 从 void 函数返回[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 从函数返回哪种更正确的方法 void function blah some code OR void function blah some co
  • 如何使用 Chef 菜谱来设置环境变量?

    如何使用 Chef 菜谱来设置环境变量 我需要使用 Chef 食谱设置环境变量 您能提供一个如何实现这一目标的示例吗 如果您需要严格在 Chef 进程内设置环境变量 则可以使用ENV foo bar 因为这是一个 ruby 过程 如果您需要
  • self.tableView.delegate = self Swift

    如果我有一个 UIViewController 并且我在故事板中将 tableView 连接到它 连接 tableview 出口 然后通过连接检查器连接数据源和委托方法 cntrl 拖动到 vc 橙色圆圈图标 我还需要添加self tabl
  • 如何解决没有 xargs -d 的 MacOS X 问题?

    我有以下命令 xargs d n n 8 bash c phpcs element PSR2 1 2 3 4 5 6 7 8 gt 2 2 gt dev null 如果我在 Linux 中运行此命令 它会起作用 如果我尝试在 Mac OSX
  • Apiary:是否可以记录 JSON 响应字段是什么?

    我想记录实际的 JSON 字段本身代表什么 我已经记录了 GET 语句和参数 但这并不能提供给用户的完整文档 那么 在下面的示例中 我将如何添加有关 OtherFields 的注释 支持吗 或者我是否需要在其他地方制作一份配套文档 View
  • GStreamer:将虚拟音轨添加到接收的 rtp 流中

    我正在使用以下命令从 Raspberry 相机启动 RTP 流 raspivid n vf fl t 0 w 640 h 480 b 1200000 fps 20 pf baseline o gst launch 1 0 v fdsrc h
  • 获取 Span 文本的值

    我有一个跨度class span 和一个隐藏字段class dropdown The span文本发生变化 我需要抓取文本并将其设置为隐藏字段值的值 然后我将使用 php 我已经有了 并使用隐藏字段的名称通过电子邮件将文本发送给我 我该怎么
  • 在 .app 运行时触发脚本(AppleScript 或 JXA)?

    我有一个小型计算机实验室 供学生在无人监督的情况下使用 并在网络上连接了打印机 我正在尝试实现一个简单的脚本添加警报对话框 其中包含有关打印机的所有规则 当他们从任意数量的不同应用程序中选择打印时 我需要弹出这些规则 我正在尝试将脚本直接附
  • 禁用 JButton 的空格键触发单击

    JButton 认为按空格键与单击 JButton 相同 假设 JButton 具有焦点 我在这里假设 有没有办法关闭这种行为 让他们忽略按空格键 另外 更一般地说 是否有一种技术可以做到这一点AbstractButtons 您可以通过执行
  • 删除默认构造函数仍然是微不足道的?

    查看标准中普通默认构造函数的定义 如果默认构造函数不是用户提供的并且满足以下条件 则它是微不足道的 它的类没有虚函数 10 3 也没有虚基类 10 1 并且 其类的非静态数据成员没有大括号或等于初始化程序 并且 其类的所有直接基类都有简单的
  • 如果用户有 cookie javascript 如何重定向用户

    我需要知道当用户第一次使用 javascript 访问该页面时如何为他们提供 cookie 然后我需要 cookie 在 1 小时内过期 如果 cookie 仍然存在并且他们尝试在 1 小时结束之前访问该页面 那么它会重定向他们 相关解决方
  • HTML5 视频的图像占位符备用

    我使用以下代码在页面上实现 HTML5 视频
  • .NET System.Diagnostics.Stopwatch 问题(返回值太低)

    在我的计算机上 秒表返回的值太低 例如 当我指定时为 200 毫秒Thread Sleep 1000 该程序应该等待 1 秒 我也测试过ManualResetEvent WaitOne 1000 并得到相同的结果 框架 2 0 和 3 0
  • SQL 中的排除语句

    如何使用SQL语句从SQL数据库中排除数据 我的情况是 我有一个用户登录到他们的个人资料页面 他们可以在其中与人交友 我想显示在 SQL 数据库中找到的除他们自己之外的所有用户 也许只是 SELECT FROM Users WHERE Us
  • 如何创建一个迭代器来生成项目,其中没有项目的单个字符在 python 中表示超过 n 次?

    我创建了一个脚本 它使用以下代码来迭代 sCharacters 字符串中的所有字符组合 sCharacters abcdefghijklmnopqrstuvwxyz0123456789 iKeyLength len sCharacters
  • 如果 PostgreSQL 上不存在如何添加列?

    问题很简单 如何添加列x到餐桌y 但仅当x列不存在 我找到了唯一的解决方案here https stackoverflow com questions 9991043 how can i test if a column exists in
  • nginx代理通过Node,SSL?

    我的 nginx 服务器实际上是用一个简单的方法代理我的节点后端 监听端口 3000 location api proxy pass http upstream 1 其中upstream 1是我在nginx conf中定义的节点集群 在端口
  • 什么是跟踪分支?

    有人可以解释一下适用于 git 的 跟踪分支 吗 这是来自的定义git scm com https git scm com book en v2 Git Branching Remote Branches Git 中的 跟踪分支 是本地分支