2011-08-31 81 views
0

想知道爲什麼我不能推動起源。這裏是一步一步的...git mv然後推問

git clone [email protected]: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

您已經對沒有遠程跟蹤分支的分支(mymaster)進行了更改,而分支正在跟蹤遠程(分別爲masterorigin/master)沒有更改。

您必須將更改合併到master,然後才能將其更改爲origin/master或將mymaster分支推送到服務器。

因此,要麼:

git checkout master 
git merge mymaster 
git push 

git push --set-upstream origin mymaster 
+0

我想我的困惑是部分與被用克隆創建的「master」分支是做什麼的對於。我認爲它是原產地/主人的別名,或者如果不是別名,則是原產地/主產地的追蹤分支,所以我的追蹤分店跟蹤主人並追蹤主人/原產地......所以一切都應該通過。可能不會。所以,真正的主分支是一個默認的禮物,並設置爲原產地/主人的追蹤者,我認爲。謝謝你的回答! –

+0

當你創建一個新的分支時,它不會默認跟蹤任何東西。 「推送」的概念並不是將來自一個本地分支的更改合併到另一個本地分支,這就是'git-merge'的用途。 – meagar

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

+0

>你寫了git checkout master - 應該是mymaster嗎?事實上,你是對的。接得好。我只是想更新主控,但是感謝推推新遙控器的珍聞。我現在明白了! –

-1

你正致力於mymaster並試圖推大師。這是最新的。如果你想推mymaster到遠程主,做

git push origin mymaster:master 

形式是

git push <where> <yourlocalbranch>:<theremotebranch> 
+0

有幫助,謝謝!但那麼「主人」分支怎麼樣..我需要檢查出來,並拉動,只需「拉動」作爲原點大師將被理解,對吧?接受這個不起作用。 –

+0

它取決於你是否想要一個不同的命名分支來跟蹤主控。在你的情況下,它是「mymaster」。沒有必要讓另一個叫做主人。通常情況就是這樣,但git允許您在設置跟蹤時使用不同名稱的本地分支 - 如果您想跟蹤。只需添加--track選項,當你推動和形成,然後你可以省略參數並執行'git push'。爲什麼downvote,順便說一句? –

+0

哎呀!根本不意味着投票。早上的眼睛..嘆了口氣 –