2012-03-13 62 views
0

我在我的系統上託管一個小型開發服務器。從那個工作目錄中,我創建了一個純粹的git回購。從那裏我和另外1個用戶將回購協議拖到本地系統。Git從工作目錄中刪除手動創建的文件

我以爲其他用戶停止使用git repo。所以我直接在「在服務器上」(這是我的系統)直接處理工作文件。

今天早上隨機將其他用戶推送到回購站。 BAM,我的所有文件都立即被刪除。整個文件夾結構被替換爲他的副本。

我以爲GIT應該告訴他 - 哇嘿,這些文件不匹配!先拉!但它什麼都沒做!只是 - BAM,刪除我所有的工作。

所以,現在我堅持,我所有的文件都沒有了 - 我查了回購的日誌,它顯示了他的推 - 但它沒有提及有關刪除我的文件的事情 - 只增加他的。

我要指出,我設置使用一些教程在那裏處理用回購來直接控制網絡上的工作文件裸回購server.as這種回購具有以下post.update鉤:

echo "***Updating Server Files***" 
    GIT_WORK_TREE=//myserver/myfolder git checkout -f 

我的文件永遠消失了嗎?

回答

1

git checkout手冊頁有這樣說的,你把你的post-update掛鉤checkout-f(或「力」)標誌:

繼續即使索引或工作樹不同來自HEAD。這用於丟棄本地更改。

如果你一直還在使用「本地」回購和推動自己來更新服務器,你會被罰款,無論您的其他用戶做了什麼,因爲你的本地提交和文件將保持不變。

但是,如果,因爲它似乎,你只是決策直接的變化,而忽略你設置的Git的一部分,你的變化很可能消失(除非你有可能做出的任何備份,當然)。就Git而言,它所摧毀的所有東西都只是「本地變化」。

+0

我無視我的git seteup ......愚蠢的我,我。所以我想沒有辦法從-f恢復。 git不能真正救我從我自己然後 – 2012-03-13 22:07:59

+0

@ user1267573:不是真的:) – Carl 2012-03-13 22:12:52

+0

謝謝約翰。猜猜我最好開始重新編碼! – 2012-03-13 22:15:04