我正在使用 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 上查看没有显示任何最近的更新......
谢谢!
为了将develop
推送到master
,语法将是:
git push origin develop:master
您在第二个命令(合并后推送到master
(中看到的推送统计信息反映了已推送的内容:无。
什么都没有,因为你已经把它推到了origin/develop
.
所以你的第二次推动只是master
的快进:origin/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)
现在我想把这个本地分支(开发(推送到我的远程主分支:
git push origin master
然后我回来了:Everything up-to-date
git push
git push <remote> <refspec>
.refspec
不仅仅是推送到哪个分支(目标(,也是从哪里推送(源(。从git-push
文档中...
<参考规格>...参考规格>
指定要使用哪个源对象更新的目标引用。
参数的格式是可选的加号 +,后跟源对象 ,后跟冒号 :,后跟目标 ref 。
重要的一点是...
否则,缺少 :
意味着更新与 相同的引用。
所以git push origin master
真的很git push master:master
.master
没有任何变化,所以一切都是最新的。
将develop
推送到远程主站其git push develop:master
。
虽然您可以执行此操作,但不建议将其作为正常工作流的一部分。让您的本地存储库与远程存储库不同会极大地混淆事情。