我在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
Run Code Online (Sandbox Code Playgroud)
但是,添加的文件和更改不会添加到我的本地存储库中.使用Git Bash手动执行此操作 - git pull original master一切都按预期工作.
为什么SmartGit没有像我期望的那样拉?
mst*_*rap 10
在Pull上,SmartGit将执行"git fetch"并在该合并之后执行.改变被追踪的分支.在你的情况下,master轨道origin/master,而不是lm/master.你现在有以下选择,总是假设你在master:
(1)配置master跟踪lm/master而不是origin/master:调用Branch | Branch Manager,从上下文菜单中选择master,调用Reset Tracked Branch,然后添加lm/master到选择并调用Set Tracked Branch.现在,它将lm/master在每个Pull上合并(或重新绑定).
(2)手动合并lm/master:调用Branch | Merge并选择lm/master.
(3)手动rebase lm/master:调用Branch|Rebase,选择HEAD到选定的提交,在图形页面上选择lm/master.
我最终在SmartGit中做的是:
Remote > Add(就像你一样).我打电话给我上游.Right click upstream > fetch more..选择分支.(通常是主人)Double click upstream > master.这将要求您创建第二个分支(通常是master-2).我也称它为上游.所以我有一个名为upstream的远程仓库和名为upstream的本地分支跟踪上游/主站.Double click Local Branches > Master,让您回到主分支.在这一点上,我认为你刚才刚刚分配了项目,所以下一步不会很有用,但是如果稍后会有一些额外的提交,你需要这样做.
Remote > Pull并选择上游.如果你按下小箭头,你会看到你只能做"既不合并也不改变".这很好.Click fetch 这将允许您查看所有日志和已更改的内容.Right click Local Branches > upstream > Merge.Fast-Forward如果你相信你可以.(我的首选方式)Create Merge-Commit.从这一点开始,你只需要做最后5个步骤.刚开始设置的第一步.