Git 扩展 + Git Windows : Fetching Branch that does not exist Locally does not Create New Local Branch

标签 git git-extensions

我在 Git For Windows(以前称为 msysgit)1.7.10.msysgit.1 上运行 Git Extensions 2.32。

另一个用户创建了一个新分支并将其推送到远程存储库。我想将该新分支提取到我的本地存储库。

This image显示我正在尝试做的事情。 master 当前已 checkout ,另一个用户添加了一个新分支“brentfo”,他已将其推送到远程存储库。我现在想将该新分支提取到我的本地存储库。

我打开 Git Extensions Pull 对话框,如图所示。我使用 merge 选项“不 merge ,仅获取远程更改”从原点 pull 出,选择新的远程分支“brentfo”。当我点击 Pull 按钮时,我会看到一个进度对话框:

c:\Program Files (x86)\Git\bin\git.exe fetch --progress "origin" +refs/heads/brentfo
Done
From //dnzchfile1/git-chch$/mRouteDotNET
 * branch            brentfo    -> FETCH_HEAD

进度对话框没有显示任何错误。该过程似乎正常完成。

FETCH_HEAD 文件显示以下内容:

eea033921fea43acf34a5baa380d1666181b56aa        branch 'master' of //server/gitrepo/mRouteDotNET
5e0640e42d04a744aae2e95663a13c0747cacaf1    not-for-merge   branch 'brentfo' of //server/gitrepo/mRouteDotNET
934e6034c526b703ac69b26497e0131f9bb71c2c    not-for-merge   branch 'mRoutePCLib' of //server/gitrepo/mRouteDotNET

然而,当我随后查看提交日志时,似乎什么也没有发生(提交日志出现在上图 Pull 对话框的背景中)。新分支 brentfo 尚未在我的本地存储库中创建。当我下 pull 分支的下 pull 列表时,仍然只有两个:master 和 mRoutePCLib。

如果在 Pull 对话框中我没有选择任何 Remote 分支(即留空),我会得到相同的结果。在这种情况下,进度对话框显示:

c:\Program Files (x86)\Git\bin\git.exe fetch --progress "origin" 
Done

在早期版本的 Git Extensions 中,从远程分支创建本地分支似乎曾经存在一个错误。但是,查看 Git 扩展项目 change log这个问题看起来早在 1.55 版本就已经解决了。所以我猜我做错了什么。

我知道我可以使用 Git Bash 控制台获取远程分支并从中创建一个新的本地分支。但是,我似乎应该能够通过 GUI 执行此操作。

我希望得到以下任一方面的答案:

a) 是的,你做错了,下面是你应该怎么做(通过 GUI);或

b) 这是一个已知问题,您必须从命令行界面 (Git Bash) 执行此操作,直到错误被修复。

干杯 西蒙

最佳答案

获取只会带来当前分支中的所有更改(以及本地跟踪的分支?有人帮助我解决这个问题。)和所有远程分支的知识。您真的不希望 fetch 降低您尚未 checkout 的所有分支的所有提交。如果有数千个分支,那将很糟糕。要 checkout 您还看不到的远程分支,您可以先获取然后 checkout 分支。

您已经获取了远程分支的存在。

现在你想做什么

Git 扩展 -> checkout 分支

将其从本地更改为远程。在下 pull 列表中选择远程分支。说好的,它会询问你是否要创建一个本地分支然后跟踪它。确保单击"is"。

我建议想办法购买 Smart Git 3。它比所有其他 Windows Git 产品都要好得多。他们有免费的开源许可版本。

关于Git 扩展 + Git Windows : Fetching Branch that does not exist Locally does not Create New Local Branch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11129913/

相关文章:

windows - Git 扩展 "function not implemented"

git - 如何确保 pull 请求中的文件已更改

git - 如何忽略存储库中的文件?

Git 克隆到任何服务器? (即使没有安装 git)

git - 在Azure Devops中,从Bitbucket pull 时如何选择yaml管道

git - 如何在 Visual Studio 2010 Beta 2 上安装 GitExtensions?

linux - 如何克隆位于连接到互联网的 Mac 上的 git 存储库?

git-extensions - 使用 Git 扩展设置默认提交模板

visual-studio - 如何使用 Git 和 Git 扩展?

git - 如何使用 Git SVN fetch 获取单个分支?