2014-08-27 87 views
0

我想清除遠程存儲庫並推送新文件。如何在git中清除遠程存儲庫?

我正在逐漸

git commit -m "fix" 
# HEAD detached from 0027561 
nothing to commit, working directory clean 

,並沒有什麼推到了遙控器。

我試圖git init,但它沒有奏效。

我該怎麼做?

+0

#HEAD detached from 0027561 沒有提交,工作目錄清理 – Burak 2014-08-27 12:54:30

+0

您需要創建一個新分支並推送到遠程,請參閱@ VonC的答案。 – gravetii 2014-08-27 12:54:52

+1

@ hjpotter92不知道OP是否想要專門做推力... – gravetii 2014-08-27 12:55:19

回答

2

你可以做一個新的分支

git checkout -b newBranch 
git push -u origin newBranch 

如果要更新母版現有的分支,你可以變基上主的頂新的分支:

git rebase master 
git checkout master 
git merge newBranch 
git push heroku master 

我更喜歡到直接簽出master,或者強制master到新分支(git branch -f master newBranch),因爲它考慮了新提交同時在主服務器上完成的情況(意思是「在提交完成分離的HEAD時」)

+0

我不想做一個新的分支。我的分支是Heroku的主人,我想留在同一個名字 – Burak 2014-08-27 12:55:38

+0

@Burak沒問題,你可以只結賬主人,除非你想提交新的更改,在這種情況下,你需要重新綁定你的新分支。 – gravetii 2014-08-27 12:56:42

+0

但是,如果我結帳,我會失去在本地更改的文件嗎? – Burak 2014-08-27 12:57:11

0

清除存儲庫(遠程或本地)是不是你可以在git中實際做的事情。不知道你爲什麼要這樣做。 Git init在本地創建一個新的存儲庫。如果您在現有存儲庫上運行它,它將會失敗。

你得到的錯誤是關於你的本地HEAD被分離,這意味着你實際上並不在一個分支上,可能是因爲你之前做過的事情,你拒絕在你的問題中提及。如果你做一個git狀態它會告訴你這個。

通過簽出一個分支來解決這個問題:git checkout master應該可以在擁有主分支的大多數存儲庫上工作。這讓你回到主分支。

提交併不實際推送到遠程。所以,即使你沒有分離,仍然不會遠程發送你的提交,但它只會在你的.git目錄中的本地git倉庫中創建提交。

一旦你有一個實際的分支與一個實際的提交,你可以嘗試推送到遠程存儲庫。我假設你確實有一個,並且你在某個時候克隆了它。如果你這樣做了,它通常被稱爲'origin',你需要將提交從本地主分支推送到原始分支。

git push通常會完成這項工作。如果失敗,一個git push - all(所有分支)或一個git push origin master(只是主分支)。