我正在使用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上查看并没有显示任何最新更新...
谢谢!
答案 0 :(得分:1)
要将develop
推到master
,请syntax would be:
git push origin develop:master
您在第二个命令中看到的 push statistics (合并后按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)
答案 1 :(得分:1)
现在我想将此本地分支(开发)推送到我的远程主分支:
git push origin master
,然后返回:Everything up-to-date
git push
是git push <remote> <refspec>
。 refspec
不仅是要推送到(目的地)的分支,还是从(来源)推送的位置。从git-push
docs ...
... 指定要使用哪个源对象更新的目标引用。
参数的格式是可选的加号+,后跟源对象 ,后跟冒号:,然后是目标参考 。
重要的是...
否则,缺少:
意味着要更新与 相同的引用。
所以git push origin master
确实是git push master:master
。 master
没有任何变化,因此一切都是最新的。
要将develop
推送到远程主机,git push develop:master
。
尽管您可以执行此操作,但不建议您将其作为常规工作流程的一部分。将本地存储库与远程存储区分开会造成很大的混乱。