我是使用GIT的新手,我阅读了文档指南,但似乎无法解决一件事。
假设github源包含两个分支,master和foobar。
现在,当我在我的系统上执行 NSString *customURL = @"appName://";
if ([[UIApplication sharedApplication]
canOpenURL:[NSURL URLWithString:customURL]])
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]];
}
时,它会显示两个分支的名称,这意味着我的系统上有两个分支。
但是,当我执行git branch
然后执行git checkout foobar
时,没有任何事情发生,而git告诉我,
`当前分支没有跟踪信息。 请指定要合并的分支。 有关详细信息,请参阅git-pull(1)。
git pull
如果您希望为此分支设置跟踪信息,可以使用以下命令设置:
git pull <remote> <branch>
`
只有当我执行git branch --set-upstream-to=origin/<branch> foobar
时,根据GitHub上更新的内容修改和更改文件。为什么会这样?在做git pull origin foobar
时我哪里出错了。 AFAIK,我认为做git pull
会将我当前的分支更新为最新的代码提交。
答案 0 :(得分:2)
听起来您已创建了一个本地分支foobar
,另外,您的存储库中的分支也称为foobar
。尽管名称相同,但这些分支尚未联系。
如果您没有本地分支foobar
,则git checkout foobar
会变为git checkout -b foobar --track origin/foobar
第二部分(--track origin/foobar
)是你想要注意的部分。这为初始结账操作设置了远程跟踪。
要解决这个问题,你可以执行你被告知要运行的命令 - 这样就可以在事后为你设置上游分支。请注意,在大多数情况下,这是一个坏主意(因为原始结帐命令应该正在做什么)。但是,在您的情况下,您似乎创建了两个独立但(基本上)相同的分支。
答案 1 :(得分:0)
Git是一个功能强大的工具,它为用户提供了大部分功能。拉=获取+合并。如果你本地foobar
本地(你检查了本地分支foobar
,不是远程),git会自动假设,如果有远程,它应该从中拉出? Git没有自动回答这个问题。
根据我对git的经验,除非你开始使用GUI,否则你会感到很沮丧,例如sourcetree。
要夏令时,要从远程拉出,您需要指定远程分支,而不是本地,并且它会尝试将其与您当前的本地工作分支合并。