2016-01-22 26 views
4

昨天在他的筆記本電腦上運行Linux的同事推送到我們的一組文件,其名稱中帶有冒號:冒號在git文件名中。 Windows開發者報警?

這是Unix世界中的一個合法文件名,但其他運行Windows的文件名已無法再使用。由於文件名是有效的,Eclipse會取消拉取。從控制檯Git拉倉庫,但沒有分配這些文件,因爲他們的非法文件名,所以我最終與缺少文件的工作副本。

在回答「切換到Linux」或「Linux比...好」之前,請理解這確實是一個錯誤,因爲我們的軟件通常部署到Windows和Linux服務器,所以包括一個非法命名的文件戰包導致崩潰。

這裏是我的問題:

  • 是否有可能在Git的限制文件命名?例如,SVN 在具有不同外殼的兩個文件共存或文件在其外殼中被重命名(例如Myclass.csMyClass.cs)時提交者警告。我想在文件中強制使用Windows風格的名稱,因爲Windows比Unix嚴格得多。我不知道Unix世界中任何非法的合法文件名
  • 在歷史中保留這種提交是否危險?我已經成功地要求提交者恢復他的更改,將我的工作副本重置爲之前有罪承諾,然後拉。但是使用Windows沒有人會能夠拉那個版本(沒有問題),或者可能的一個分支

是的,我明白這是一個錯誤,讓他直接推到主交互式衍合它,如果它在一個分支中,我們可以很容易地隔離並消除它的變化。

因爲我們有一堆活動分支在主人之後,需要在PR之前合併對齊,並且需要合併,所以我想知道是否可以將主人重新綁定到自己身上,推動力量,讓所有開發人員吸取教訓。

至於最後一點,我們使用運行在Linux主機上Bitbucket Server,並可以執行使用拉請求

回答

2

你可以安裝一些git hooks(做相應的檢查),引人注目的是git precommit掛鉤(至少對於Linux用戶)合併,或一個預製掛鉤。

當然,這需要一些合作(並說服人們使用它)。

+0

我將盡快處理這個問題,特別是如果我能夠輕鬆開發預安裝檢查以安裝在Bitbucket上(預先提交非常好,預先推送更安全)。在最糟糕的情況下,推前鉤會迫使開發者重新評估他的歷史。 –