首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用TortoiseGit从远程获取/提取分支

使用TortoiseGit从远程获取/提取分支
EN

Stack Overflow用户
提问于 2014-07-16 03:38:03
回答 1查看 8K关注 0票数 2

我使用TortoiseGit v1.8.9.0作为我的客户端。

我有一个git存储库,目前有两个分支。头分支和1.0.0-增强分支。

在我的本地存储库中,1.0.0增强分支不是最新的。因此,当我使用TortoiseGit查看本地的这个分支的提交历史时,它并没有显示在这个分支上的提交,就像我在GitWeb的远程上看到的那样。

这里有两个截图,说明我的1.0.0增强分支的本地副本缺少提交。

->使用TortoiseGit的本地历史记录

--> GitWeb上的远程历史

我的最终目标是将1.0.0增强分支合并到HEAD分支中,但是在我这样做之前,我相信1.0.0增强分支应该是本地最新的。

我已经尝试了几个小时,试图找到一种获取1.0.0的方法--从远程到本地的增强提交,但是找不到一种方法。这就是我试过的..。

  1. 让乌龟Git切换到1.0.0-增强分支。

  1. 使用tortoiseGit从远程分支获取。

但是,在查看了我的1.0.0增强分支的历史之后,缺失的提交仍然是缺失的。有人能帮我解决这个问题吗?

--更新回答byt @杯蛋糕的内容--

TortoiseGit还带有bash提示符。我使用命令行尝试了您的两种建议,但它们都没有起作用。以下是结果。

但我似乎在尝试从TortoiseGit UI中提取git时取得了一些进展。

它似乎起作用了,除非它回来时有个错误:

git.exe拉出-v --进度“原产地”1.0.0-增强 从ssh://upredmine/cvs/repo/codeRepository/git/repo04/EPOS/EPOSWeb *分支1.0.0-增强-> FETCH_HEAD更新67b6537..ee38b20错误:以下未跟踪的工作树文件将被合并覆盖:.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs .元数据/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs .元数据/version.ini请在合并之前移动或删除它们。正在中止 git没有干净地退出(出口代码1) (1094 ms @ 16/07/2014 3:32:47下午)

你能给我一些反馈吗?我需要强制更新还是同步?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-16 04:29:48

看起来,您遇到的问题是,您只是将增强分支提取到本地回购中,但实际上并没有将远程跟踪分支origin/1.0.0-Enhancements合并到本地1.0.0-Enhancements分支中。

基本上,您的分支设置如下(让X表示您的增强分支):

正如您在上面的图表中所看到的,涉及三个分支:

  1. 本地版本的X。
  2. X的远程版本。
  3. 本地远程跟踪分支origin/X,它跟踪X的远程版本在哪里.

通过使用git fetch,您可以更新本地repo...but中的本地远程跟踪分支origin/1.0.0-Enhancements,这是一个独立于本地1.0.0-Enhancements分支的分支。

所以,你想要做的是:

  1. git pull,或
  2. git merge远程跟踪部门.

请注意,git pull实际上只是一个git fetch的组合,后面是您刚刚获取的分支的git merge

备选案文1:合并

由于您已经获取了,所以只需要将origin/1.0.0-Enhancements合并到本地1.0.0-Enhancements分支中即可。我不知道在TortoiseGit中是如何做到这一点的(我几年前就不再使用它了),但是如果您想通过命令行这样做,只需这样做。

代码语言:javascript
运行
复制
git checkout 1.0.0-Enhancements
git merge origin/1.0.0-Enhancements

备选方案2:拉

在将来,如果没有先提取,则可以从远程分支执行对本地分支的拉入。再说一遍,我已经不知道如何在TortoiseGit中这样做了,但是如果您想要从命令行执行此操作,则只需执行以下操作

代码语言:javascript
运行
复制
git checkout 1.0.0-Enhancements
git pull origin 1.0.0-Enhancements

头符号引用的注记

因此符号引用origin/HEAD 不是分支。它只是一个特殊的引用,指向(裸)远程repo...the中的默认分支,该分支默认由该回购的任何克隆签出。

在一个非裸回购中,HEAD仍然是一个符号引用,但是它不是指向默认分支,而是指向当前签出的分支,或者当前签出的提交,如果您当前不在分支的顶端(例如,“分离的头”状态)。

文档

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24771795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档