如何在SourceTree中拉取所有分支?

36

我在拉取窗口中没有看到任何选项来执行此操作。我该怎么办?


当你获取本地仓库时,应该有所有提交记录。你到底想做什么? - orb
2
@orb 我想清除本地分支右侧的数字。我是一个强迫症患者。:( 尝试适应git。 - Harrison Xi
1
你可以让Sourcetree停止跟踪远程分支,这样数字就会消失。右键单击本地分支即可实现。 - orb
1
@orb 我来这里是为了寻找一个解决方案,即“在我离线一段时间之前,如何使所有跟踪分支保持最新”。这个请求不仅仅是出于强迫症的愿望,不想在左侧窗格中看到数字。 - GreenAsJade
1
@GreenAsJade 我想你要找的是右键单击您希望更新分支的远程仓库中的“获取远程数据”选项。如果您正在跟踪多个远程仓库,则需要逐个获取它们。 - orb
我所找到的唯一解决方案是右键单击带有“数字”的分支,然后选择“获取(fetch)”。 - Abhi Beckert
4个回答

30
当仓库被克隆后,您会在侧边栏的“Remotes”下看到所有远程分支。

如果有任何内容丢失了,您可以点击Fetch来获取所有对象,以完成远程仓库中所有分支和标签的历史记录。

如果在SourceTree中看到它,则存储在您的计算机上。如果想要检出其中一个分支,请双击它即可。您可以在没有互联网连接的情况下随时切换到任何一个分支。
没有办法 - 也没有必要 -“拉取所有分支”。

4
他说他想要拉取所有分支以移除每个分支旁边的通知数字。 - BillyTom
29
“没有必要拉所有分支”这个说法并不准确,它假设您可以预料到全部需要。我想拉取所有分支,以便我可以在离线状态下自由切换所有分支的头部(例如在飞机上)。 - GreenAsJade
2
@GreenAsJade,你不能明确地“拉取所有分支”。git pull只是运行git fetch然后运行git merge。而且git fetch会获取远程仓库中所有分支和标签的历史记录所需的所有对象。你想要的默认情况下就会发生。 - Aaron Brager
6
这个问题涉及到 SourceTree - 一个用于 git 的图形化界面客户端。你正在描述底层工具的功能,但这与我使用 SourceTree 的经验不符。具体地说,如果我使用 SourceTree(点击“Fetch”按钮)来获取远程内容,然后在离线状态下尝试切换到该远程分支的不同分支的头部,我将无法这样做。我必须在离线之前对每个分支进行“Pull”(SourceTree 拉取)。因此问题是:如何对所有分支执行此操作(而非分别执行)? - GreenAsJade
1
对于那些你有本地跟踪分支的远程分支,尝试点击合并 -> 合并获取 -> 确定,将新的远程更改合并到你的本地分支中。在获取之后,这对我来说无论在线或离线都有效。 - Aaron Brager
显示剩余5条评论

7

我想进一步扩展其他答案。

使用git时,首先要检出您感兴趣的远程分支,以便它们是本地的。因此,在SourceTree中,您右键单击每个远程分支,并单击“Checkout”。

一旦你所感兴趣的分支是本地的,你现在可以使用git-up。

如何安装git-up以便在SourceTree中轻松使用

对于我来说,在OSX 10.11.1(El Capitan)上,这很简单,只需在终端中键入sudo gem install git-up,但可能会有所不同。 (确保其安装的git-up可执行文件位于您的路径中。对我来说,它安装到了/usr/local/bin,而这已经在我的路径中。如果需要帮助,请使用Google。 这里有一个Stack Overflow链接可能会有所帮助。)

现在在SourceTree中创建自定义操作。转到SourceTree首选项->自定义操作,然后单击添加。填写如下:

  • 菜单标题:git-up
  • 运行脚本:git-up
  • 显示完整输出:选中(我的个人喜好,未选中也可以)
  • 参数:留空
  • 单击“单击以记录快捷键”,然后分配键盘快捷键。 (我使用CMD + U。)

现在,每当您在SourceTree中使用您的键盘快捷键来拉取/变基所有已检出的分支时,这将防止您不得不切换到每个分支来拉取/变基每个分支。

注意:如果您不想变基,则可以调整git-up的实际操作。请参见git-up的GitHub页面


2

将SourceTree连接到主分支(克隆)

然后使用shell导航到项目文件夹并运行以下命令:

git branch -r (将显示所有远程分支)

git checkout --track origin/[分支名称]

重复检出所有分支 - SourceTree几乎会立即获取它们。


2
略有偏离主题,但对于git命令行,你可以使用git-up来执行“git checkout”和“git pull”以更新所有本地分支。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接