我在Windows上通過cygwin使用git,很快就決定使用filemode=false
(因爲否則我在初始git克隆後會發生很多變化)。我絕對不會對跟蹤權限感興趣,唯一需要考慮的是某些文件是可執行的。不時,我發現某些文件上的x
標誌會丟失,我強烈認爲這是因爲git。如何阻止git使cygwin上的文件不可執行?
我很高興能夠在需要時執行chmod a+x ...
的解決方案。
我在Windows上通過cygwin使用git,很快就決定使用filemode=false
(因爲否則我在初始git克隆後會發生很多變化)。我絕對不會對跟蹤權限感興趣,唯一需要考慮的是某些文件是可執行的。不時,我發現某些文件上的x
標誌會丟失,我強烈認爲這是因爲git。如何阻止git使cygwin上的文件不可執行?
我很高興能夠在需要時執行chmod a+x ...
的解決方案。
我相信你想git update-index --chmod=+x <file>
,然後提交。
我遇到了同樣的問題。 git update-index --chomd = + x不適用於我。
我使用chmod + x,然後提交,它工作完美。
或者使用update-index,commit,再次檢出文件。 –
您應該從git update-index --chmod=+x <file>
開始。
但是這並不會改變你的工作拷貝,爲:
git checkout .
我不認爲這會有所幫助,因爲我使用'FILEMODE = FALSE',所以我想我以後做什麼從git中獲取文件(而不是把它們放在git中)。每當git更改或創建文件時都會應用這些內容。而且,它應該自動運行。 – maaartinus
[The docs](http://www.kernel.org/pub/software/scm/git/docs/git-update-index.html#_configuration)特別向filemode = false的系統推薦此命令。如果我理解正確,則該設置僅適用於_automatic_檢測權限更改。 Git仍然存儲一個文件模式,這是您執行'git ls-tree HEAD'時的第一列。如果它顯示爲644而不是755,那麼git在寫入該文件時不會設置可執行位。 –
我看到我誤解了'filemode = false'。不知何故,我想,它會禁用存儲的位,但「索引和工作副本之間的可執行位差異被忽略」,而不是。 – maaartinus