2013-03-19 72 views
3

在Mac上工作時,我的IDE生成了一個包含:(冒號)字符的目錄,該目錄被推送到了git存儲庫。當我切換到我的電腦上工作後,我發現我無法拉動目錄,收到一個fatal: cannot create directory at... invalid argument錯誤。在Git倉庫上刪除不能被拉到PC上的目錄

如何刪除或重命名不可發送的目錄?

我使用的是GitHub.com,所以使用網站界面的解決方案也是可以接受的。

+0

「在Mac上工作時」 - 爲什麼不從Mac中刪除它? – valentinas 2013-03-19 02:25:11

+0

Mac正在工作,我需要將這些更改拖到我家的計算機上。 – 2013-03-19 02:26:34

回答

3

您需要記住的是,git pull實際上是一個兩步過程。首先它使用fetch來檢索遠程文件。然後,它會嘗試執行fast-forwardmerge以將更改直接應用於工作之上。

所以在遙控器上使用fetch。這將確保您在git倉庫中設置了遠程更改。我想說的運行從混帳回購協議如下:

ls | xargs -I'{}' git checkout -- '{}' 

但你說你在Windows中,所以你可能只是通過具有循環和做手工。此外,這假定沒有新的文件在您的回購的根目錄中創建。

現在,如果您確實想恢復目錄的創建,請執行以下操作(假定遠程爲origin,分支爲master)。

git update-ref refs/heads/master $(git rev-parse origin/master) 
git add --all . 
# amend the commit to remove the folder from history 
# only do this if you can rebase the remote w/o repercussion 
git commit --amend 
# otherwise just add a new commit on top of the old 
git commit 

現在看日誌,看看是否一切正常,如果是的話那麼推到遠程(如果你使用--amend,那麼你就必須強制推送)。