想知道为什么我不能推销原产地。这是一步一步......
git clone git@github.com:globegit/aRepository.git
cd aRepository
git branch --track mymaster master
git checkout master
git mv oldfile newfile
git status
- On branch mymaster
- Changes to be committed:
- (use "git reset HEAD <file>..." to unstage)
-
- renamed: oldfile -> newfile
-
git commit -m 'renamed a file'
git status
- On branch mymaster
- Your branch is ahead of 'master' by 1 commit.
-
nothing to commit (working directory clean)
很好,但是为什么我不能把这个改变推到遥控器?
git-mv不被视为改变,因此它表明我即使是最新的 使用新的提交对象?
git push
Everything up-to-date
git push origin master
Everything up-to-date
谢谢你的解释!
答案 0 :(得分:0)
您已经对没有远程跟踪分支的分支(mymaster
)提交了更改,而正在跟踪远程(分别为master
和origin/master
)的分支没有更改
您必须先将更改合并到master
,然后再将其推送到origin/master
,或将mymaster
分支推送到服务器。
所以:
git checkout master
git merge mymaster
git push
或
git push --set-upstream origin mymaster
答案 1 :(得分:0)
默认行为:
git push -> git push origin -> git push origin :
git push origin :
推送匹配的分支:对于本地端存在的每个分支,如果远程端已经存在同名分支,则远程端会更新。
所以分支在远程不存在,它显示Everything up-to-date
在您的命令列表中,您已编写git checkout master
- 那应该是mymaster
吗?因为你似乎在为mymaster工作。你必须推动:
git push origin mymaster
这样git就会在远程创建mymaster
。
或者,既然你似乎想要掌握,也许:
git push origin mymaster:master
或
git push origin HEAD:master
http://www.kernel.org/pub/software/scm/git/docs/git-push.html#OPTIONS
答案 2 :(得分:-1)
你正在向mymaster致敬并试图推动主人。这是最新的。如果您想将mymaster推送到远程主控,请执行
git push origin mymaster:master
表单是
git push <where> <yourlocalbranch>:<theremotebranch>