簡體   English   中英

如何在GitHub上更改文件模式?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM