2

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

另外,我怎么知道“主人”是什么?是我现在所在的分支吗??我将 myBranch 推送到远程存储库的方式显然有问题。

4

2 回答 2

2

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

git push origin myBranch:develop

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

如果您添加-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

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

于 2013-01-10T01:34:43.857 回答
0

我想通了。它是: git push origin HEAD

我认为我的“主人”指向一个本地分支,所以它从来没有更新远程存储库。

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

感谢所有的帮助!

于 2013-01-30T10:38:42.623 回答