合并的更改不会在本地分支推送到远程存储库时更新

时间:2013-01-10 01:21:12

标签: git branch

我从“origin / develop”创建了一个名为“myBranch”的分支。我在myBranch上进行了本地更改。与此同时,其他人正在对origin / develop进行更改,因此我会定期使用myBranch获取并合并该分支(使用“git pull”)。当我添加并提交时,将更改推送到远程存储库,该存储库与我的本地分支共享同名,使用“git push origin master”,我只看到我的本地更改。来自origin / develop的所有合并更改都不会随着我的本地更改而被推送。

另外,我如何判断“主人”是什么?它是我目前的分支吗?我将myBranch推入远程存储库的方式显然有些不对劲。

2 个答案:

答案 0 :(得分:2)

master只是另一个分支名称。所以你要推错了。你应该

git push origin myBranch:develop

约定是本地参考名称参考名称在你要推送的回购上。如果省略冒号和姓氏,则假定您指的是同名的远程分支。

如果您添加-u参数,那么将设​​置跟踪以指示myBranch在服务器上进行开发,现在您可以

git push

在执行此操作后查看配置,您将看到git如何记录此内容:

cat .git/config

然而......你应该真正开发自己的回购。您的工作流程将是

git fetch  # will grab all the branches from the remote
git checkout develop  # will make a local develop branch that points to origin/develop
# do some work, commit, etc
git pull origin develop # this will merge for you
git push -u origin devolop # to set tracking

最后一个只需要运行一次然后你就可以git push

同样设置git,默认情况下只用

推送当前分支
git config --global push.default current

否则,如果他们设置了跟踪功能,它将推送您在本地拥有的所有分支。

答案 1 :(得分:0)

我想出来了。它的: git push origin HEAD

我认为我的“主人”指向一个本地分支,因此它永远不会更新远程存储库。

您可以在.git / config文件中查看master,origin,head等的指针。

感谢您的帮助!