[英]How to make a uploaded file in github chmod=+x? and then download the file with wget command preserving the executable set in github mode?
[英]How to change the File Mode on GitHub?
$ git add test-file
$ git commit -m 'first commit'
create mode 100644 test-file
$ git push
$ git update-index --add --chmod=+x test-file
$ git commit -m 'change mode'
mode change 100644 => 100755 test-file
$ git push
在那之后如果你去GitHub它仍然顯示為100644無論如何。
MSYS不是問題。 即使MSYS chmod
不起作用(它沒有),Git也有一種解決這個問題的內置方法,即git update-index --chmod=+x
。 讓我們清楚的是, git update-index
只與索引(臨時區域)混淆,而不是本地存儲庫(工作目錄)。
我確信問題出在GitHub上。 在GitHub上,如果最初使用模式100775推送文件,一切都很好。 如果文件最初被推送為100644,則會導致問題。 嘗試更改文件模式將成功使用git add
,使用git commit
成功,使用git push
成功,甚至顯示在GitHub文件歷史記錄中,但不會反映在GitHub上的“blob / master”頁面上。
更新
來自:Petros Amiridis(GitHub員工)
主題:如何在GitHub上更改文件模式?
我有一些好消息。 我們很棒的團隊剛剛確認這是我們最終的緩存錯誤。 我們的團隊已部署修復程序。
我認為問題是,git的Windows實現所基於的MSYS不能正確處理chmod
。
(編輯:另一個答案說MSYS不是問題,這看起來似乎有道理。)
我猜是命令
git update-index --add --chmod=+x test-file
通過更新本地存儲庫中的元數據(應該可以工作)和更改文件的權限(沒有)來工作,使本地存儲庫處於不一致狀態。
您應該可以通過撤消update-index
來退出:
git update-index --add --chmod=-x test-file
git commit -m 'change mode back'
git push
將存儲庫恢復到一致狀態,然后在存儲庫的非Windows副本中進行更改。 如果您無法訪問Linux或其他類Unix系統, Cygwin包含git
(默認情況下不是,但您可以通過setup.exe
安裝它),並為您提供chmod
實際工作的環境。 Cygwin的默認shell是bash,所以如果你一直在使用git bash,環境應該很熟悉。
當您從git bash shell中查看文件時,該文件仍然不會顯示為可執行文件,但它應該在GitHub Web界面中顯示為100755
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.