我是Git的新手,試圖讓自己正確設置。我有一個遠程repo和一個本地克隆,到目前爲止只有一個(master)分支。推送後,刪除的文件仍然存在於Git遠程倉庫中?
我刪除了本地的一些文件,提交了這個修改,然後做了'git push origin master',它似乎可以成功運行。 'git status'現在在本地顯示任何內容。
但是,當我查看遠程repo時,文件仍然存在,'git status'將它們全部顯示爲已添加但未提交。應推送我的更改沒有從遠程刪除它們?我究竟做錯了什麼?
我是Git的新手,試圖讓自己正確設置。我有一個遠程repo和一個本地克隆,到目前爲止只有一個(master)分支。推送後,刪除的文件仍然存在於Git遠程倉庫中?
我刪除了本地的一些文件,提交了這個修改,然後做了'git push origin master',它似乎可以成功運行。 'git status'現在在本地顯示任何內容。
但是,當我查看遠程repo時,文件仍然存在,'git status'將它們全部顯示爲已添加但未提交。應推送我的更改沒有從遠程刪除它們?我究竟做錯了什麼?
問題是,你顯然推到一個非裸倉庫。推送將永遠不會更新遠程工作副本。
看一看Git push only for bare repositories?和http://gitready.com/advanced/2009/02/01/push-to-only-bare-repositories.html
爲了使非裸遠程存儲庫是最新的,連接到回購是通過SSH位於機器上並運行git reset --hard HEAD
和git checkout -f
強行把工作拷貝迄今爲止(請注意,這將破壞您可能在該工作副本中進行的任何本地更改)。
要使遠程存儲庫裸露,請通過SSH連接到本機,以便您可以直接訪問它。假設倉庫是在一個子文件夾repo
運行以下命令:
mv repo repo_old
git clone --bare repo_old repo
然後和測試,如果一切正常,這rm -rf repo_old
後襬脫舊的。
它沒有爲我工作。我正在使用Bitbucket – Vikki
爲什麼您的遠程回購不*裸*? – ThiefMaster
啊,我不知道我必須這樣設置它。現在可以通過再次運行'git init'來更改它,還是必須重新設置遠程回購?謝謝! – jam
我已經更新了我的答案,包括如何使其裸露的說明。 – ThiefMaster