我从“origin / develop”创建了一个名为“myBranch”的分支。我在myBranch上进行了本地更改。与此同时,其他人正在对origin / develop进行更改,因此我会定期使用myBranch获取并合并该分支(使用“git pull”)。当我添加并提交时,将更改推送到远程存储库,该存储库与我的本地分支共享同名,使用“git push origin master”,我只看到我的本地更改。来自origin / develop的所有合并更改都不会随着我的本地更改而被推送。
另外,我如何判断“主人”是什么?它是我目前的分支吗?我将myBranch推入远程存储库的方式显然有些不对劲。
答案 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等的指针。
感谢您的帮助!