首页 > 解决方案 > Git:将本地分支推送到远程 Master 的奇怪行为?

问题描述

我正在使用 Git 进行版本控制,并且在 Github 上有一个远程存储库,在我的机器上有一个本地主机。我要更改的文件是Toxic Comment Classification.ipynb.

我对文件进行了一些修改。跑步git status节目:

modified:   Toxic Comment Classification.ipynb

然后我运行:

git branch develop

git checkout develop

现在运行git status告诉我我在本地develop分支上并且我对Toxic Comment Classification.ipynb文件进行了更改。

现在我运行:

git add -u

git commit -m "checkpoint"

我回来了:

[develop ef9250e] checkpoint
1 file changed, 116 insertions(+), 99 deletions(-)

一切似乎都很好。现在我想将这个本地分支 ( develop) 推送到我的远程主分支:

git push origin master

我回来了:

Everything up-to-date

这不是我所期望/想要的。但是,我可以成功推送到origin/develop

1)我在这里做错了什么?我希望看到我在develop分支上所做的更改反映在origin/master...

最后,我尝试通过查看我的本地master分支并合并到我的本地develop分支来解决这一切。然后我运行:

git push origin master

然后回来:

Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/bclayman/ToxicCommentTextClassification.git
   6de47de..ef9250e  master -> master

2)这种方法不应该也有效吗?它的输出让我觉得没有任何更新,并且在 Github 上查看并没有显示任何最近的更新......

谢谢!

标签: gitgithub

解决方案


要推develop送到master语法为

git push origin develop:master 

您在第二个命令中看到的推送统计信息master(合并后推送)反映了已推送的内容:没有。
什么都没有,因为你已经把它推到origin/develop.
所以你的第二次推动只是一个快进masterorigin/master将其 HEAD 调整为origin/develop.

x   (HEAD, master, origin/master)
 \
  y (develop, origin/develop)

git merge develop

x   (origin/master)
 \
  y (HEAD, master, develop, origin/develop)

git push

x--y (HEAD, master, origin/master, develop, origin/develop)

推荐阅读