git mv然后推问题

时间:2011-08-31 00:06:02

标签: git

想知道为什么我不能推销原产地。这是一步一步......

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  

谢谢你的解释!

3 个答案:

答案 0 :(得分:0)

您已经对没有远程跟踪分支的分支(mymaster)提交了更改,而正在跟踪远程(分别为masterorigin/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>