Sim*_*wsi 4 git git-extensions
我在 Git For Windows(以前称为 msysgit)1.7.10.msysgit.1 上运行 Git 扩展 2.32。
另一个用户创建了一个新分支并将其推送到远程存储库。我想将该新分支提取到我的本地存储库。
这张图片显示了我正在尝试做的事情。master 当前已被检出,另一个用户添加了一个新分支“brentfo”,他已将其推送到远程存储库。我现在想将该新分支提取到我的本地存储库。
我打开 Git Extensions 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
Run Code Online (Sandbox Code Playgroud)
进度对话框没有显示任何错误。看起来该过程正常完成。
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
Run Code Online (Sandbox Code Playgroud)
然而,当我之后查看提交日志时,似乎什么也没发生(提交日志出现在上方拉对话框图像的背景中)。新分支 brentfo 尚未在我的本地存储库中创建。当我下拉分支的下拉列表时,仍然只有两个:master 和 mRoutePCLib。
如果在 Pull 对话框中没有选择任何远程分支(即留空),我会得到相同的结果。在这种情况下,进度对话框显示:
c:\Program Files (x86)\Git\bin\git.exe fetch --progress "origin"
Done
Run Code Online (Sandbox Code Playgroud)
在早期版本的 Git 扩展中,从远程分支创建本地分支似乎曾经存在一个错误。但是,查看 Git Extensions 项目更改日志,问题似乎已在 1.55 版中解决。所以我猜我做错了什么。
我知道我可以使用 Git Bash 控制台来获取远程分支并从中创建一个新的本地分支。但是,似乎我应该能够通过 GUI 来做到这一点。
我希望得到以下任一方面的答案:
a) 是的,你做错了,这里是你应该怎么做(通过 GUI);或者
b) 这是一个已知问题,您必须从命令行界面 (Git Bash) 执行此操作,直到修复错误为止。
干杯西蒙
获取只会带来当前分支中的所有更改(以及本地跟踪的分支?有人帮我解决这个问题。)以及所有远程分支的知识。您真的不希望 fetch 取消所有尚未签出的分支的所有提交。如果有数千个分支,那将是糟糕的。要签出您还看不到的远程分支,请先获取,然后再签出分支。
您已经获取了远程分支的存在。
现在你想做
Git 扩展 -> Checkout 分支
将其从本地更改为远程。在下拉列表中选择远程分支。说好的,它会询问您是否要创建本地分支然后跟踪它。确保单击是。
我建议找到购买 Smart Git 3 的方法。它比所有其他 Windows Git 产品都要好得多。他们有一个免费的开源许可证版本。