如何为“git pull”配置本地分支:

9
我正在尝试创建一个名为springdevelopment的分支,并将代码推送到git上。
git checkout -b springdevelopment 
git add .

git commit -m 'initial commit'
git push origin springdevelopment 
git checkout --track origin/springdevelopment 

当我执行 git remote show origin 命令时,在本地分支的 git pull 部分缺少 "spring development"。请问发生了什么以及我做错了什么。
非常感谢您提前提供的宝贵信息。

为什么会出现“连接被中止”异常... 致命错误:远程终端意外地挂断 致命错误:远程终端意外地挂断 - Krish
正如Adam的回答所建议的那样,你错过的是在git push命令中使用-u标志。-u设置上游。或者你可以明确地执行git branch --set-upstream-to=origin/springdevelopment springdevelopment。这样本地分支就被称为“跟踪”远程分支,以便稍后可以执行git pull进行合并。 - adnan2nd
3个回答

13
git checkout -b springdevelopment 
git add .

git commit -m 'initial commit'
git push -u origin springdevelopment 

没必要这样做:

git checkout --track origin/springdevelopment 

您始终可以使用以下方式稍后更新跟踪:

git branch --set-upstream-to origin/springdevelopment

将您的refspec更新为:

[remote "origin"]
    url = git@github.com:user/project.git
    fetch = refs/heads/*:refs/remotes/origin/*

感谢Adam的快速回复。我想让我的springdevelopment分支在git pull部分也可见。当我执行git remote show origin时,结果缺少用于git pull的springdevelopment分支。 - Krish
也许你想要做的是更新refspec: git fetch refs/heads/* refs/remotes/origin/* 并且可以通过执行 git branch -a 命令来查看你想要的内容(在设置了Adam建议的跟踪之后)。 - Vince

2

我的git pull未从正确的远程仓库拉取。我意识到我添加了第二个上游github,它接管了我的"master"分支。

所以我修改了我的.git/config文件,从:

[branch "master"]
    remote = github
    merge = refs/heads/master

to:

[branch "master"]
    remote = origin
    merge = refs/heads/master

0

我认为有一个选项可以将推送更新跟踪引用 (refs/remote/...),但我现在无法在文档中找到任何其迹象。只需调用

git fetch

在推送更新后。


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