2012-05-18 91 views
8

我是Git的新手,試圖讓自己正確設置。我有一個遠程repo和一個本地克隆,到目前爲止只有一個(master)分支。推送後,刪除的文件仍然存在於Git遠程倉庫中?

我刪除了本地的一些文件,提交了這個修改,然後做了'git push origin master',它似乎可以成功運行。 'git status'現在在本地顯示任何內容。

但是,當我查看遠程repo時,文件仍然存在,'git status'將它們全部顯示爲已添加但未提交。應推送我的更改沒有從遠程刪除它們?我究竟做錯了什麼?

+0

爲什麼您的遠程回購不*裸*? – ThiefMaster

+0

啊,我不知道我必須這樣設置它。現在可以通過再次運行'git init'來更改它,還是必須重新設置遠程回購?謝謝! – jam

+0

我已經更新了我的答案,包括如何使其裸露的說明。 – ThiefMaster

回答

5

問題是,你顯然推到一個非裸倉庫。推送將永遠不會更新遠程工作副本。

看一看Git push only for bare repositories?http://gitready.com/advanced/2009/02/01/push-to-only-bare-repositories.html

爲了使非裸遠程存儲庫是最新的,連接到回購是通過SSH位於機器上並運行git reset --hard HEADgit checkout -f強行把工作拷貝迄今爲止(請注意,這將破壞您可能在該工作副本中進行的任何本地更改)。

要使遠程存儲庫裸露,請通過SSH連接到本機,以便您可以直接訪問它。假設倉庫是在一個子文件夾repo運行以下命令:

mv repo repo_old 
git clone --bare repo_old repo 

然後和測試,如果一切正常,這rm -rf repo_old後襬脫舊的。

+0

它沒有爲我工作。我正在使用Bitbucket – Vikki

相關問題