既然你已經標記了這個問題與linux,你可以檢查該文件中現在,你已經改變了它在您的計算機上。
% chmod +x script.sh
Git會注意到該文件已經改變:
% git status
On branch old2
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: script.sh
你可以diff來看看這個文件,實際上,現在可執行:
% git diff foo.sh
diff --git a/foo.sh b/foo.sh
old mode 100644
new mode 100755
模式100644
反映了一個不可執行文件,模式100755
反映了一個可執行文件,類似於Unix文件權限位。 (如果您將文件另外更改爲更改權限,您也會看到更改。)
當您檢查此事件並且您的協作者提取您的更改時,該文件也將變爲可執行文件。
注意,這不就沒有執行位(即Windows)中的概念,並在該情況下,你會需要做something with update-index
系統自動工作。
注意也這依賴於您的系統配置core.filemode
被正確設置。在所有非Windows系統上,此值應設置爲true
。
% git config core.filemode
true
如果由於某種原因,該命令返回false
和你是一個非Windows計算機上運行:
% git config core.filemode true
重新啓用它。
如果您將其設置爲可執行文件並推送它應該足夠。 – PeeHaa
這是新東西嗎?情況並非如此。 –
你在Windows上嗎?如果沒有,Git應該檢測可執行位並進行適當的設置。你不應該做任何事情。 –