SmartGit拉不像预期的那样

时间:2012-05-08 09:02:33

标签: git smartgit

我在GitHub上分叉了一个存储库。

然后我通过SmartGit将我的叉子克隆到我当地开发环境的一个文件夹中。 另外,我将原始存储库添加为远程存储库。

现在,原始存储库已添加并更改了一些文件。在继续开发之前,我想检索这些以便我能及时更新。

我按下SmartGit中的Pull按钮,然后在对话框中选择原始回购。 SmartGit将此返回给我:

remote: Counting objects: 24, done.
remote: Total 13 (delta 7), reused 12 (delta 6)
From github.com:Original/repo
 * [new branch]      master     -> lm/master

但是,添加的文件和更改不会添加到我的本地存储库中。 使用Git Bash手动执行此操作 - git pull original master一切都按预期工作。

为什么SmartGit没有像我期望的那样拉动?

4 个答案:

答案 0 :(得分:10)

上,SmartGit将执行“git fetch”并在该合并后执行。重新定义跟踪的分支。在您的情况下,master跟踪origin/master,而不是lm/master。您现在有以下选择,始终假设您在master

(1)配置master以跟踪lm/master而不是origin/master:调用分支|分支机构管理器,选择master,调用从上下文菜单中重置跟踪分支,然后将lm/master添加到选择中并调用设置跟踪分支。现在,它是lm/master,它将在每个上合并(或重新绑定)。

(2)手动合并lm/master:调用分支|合并并选择lm/master

(3)手动变基于lm/master:调用Branch|Rebase,选择 HEAD到选定的提交,然后在图表页面上选择 lm / master

答案 1 :(得分:7)

我最终在SmartGit中做的是:

  • Remote > Add(正如你所做的那样)。我打电话给我上游
  • 在分支面板Right click upstream > fetch more..中选择分支。 (通常是主人)
  • 在分支面板Double click upstream > master中。这将要求您创建第二个分支(通常是master-2)。我还称之为上游。所以我有一个名为upstream的远程仓库和名为upstream的本地分支跟踪上游/主站。
  • 在分支面板Double click Local Branches > Master中,让您回到主分支。

此时我会认为你刚刚刚刚分配了项目,所以下一步不会非常有用,但是如果稍后会有一些额外的提交,你需要这样做。 / p>

  • Remote > Pull并选择上游。如果按下小向下箭头,您将看到执行“既不合并也不改变”。这很好。
  • Click fetch这将允许您查看所有日志和已更改的内容。
  • 在分支展板Right click Local Branches > upstream > Merge
  • Fast-Forward如果你相信你可以。 (我的首选方式)。
  • Create Merge-Commit.

从这一点开始,你只需要做最后5个步骤。 第一步就是设置。

答案 2 :(得分:3)

如果当前本地分支的 upstream branch 为“lm/master”,您会看到新文件。
但是如果你在master,它的上游分支肯定是默认的“origin/master”(即叉子的master

如果要合并原始仓库中的文件,请使用

完成命令
git merge lm/master

或者in SmartGit, mergelm/master到您当前的分支。

答案 3 :(得分:3)

如果SmartGit在您的每个 Pull 上执行获取

然后在应用程序的菜单栏或分支窗口中找到分支选项。 enter image description here

然后

enter image description here

OR

enter image description here

Voila ...享受