windows 下的檔案是否可執行是由副檔名決定的,但是linux下是否可執行是檔案的可執行屬性決定的。
有時候windows 下開發寫的指令碼程式,想提交的git 倉庫中時就有可執行許可權,以便在linux和macos上轉殖下來就能直接執行。
如果在linux下就先新增可執行許可權 後commit和push,如果在windows下就需要通過git命令修改了。
$ git ls-tree head
100644 blob d116ef8f223343c3425ff48c83e82fee60ff7e31 .gitignore
100644 blob 5627c82972a898248d36da3933bc4195865d7014 readme.en.md
100644 blob 828b1b40d264cdbd9dea4f5178e14de0559e0d3e readme.md
040000 tree a6db25934db55524d03f67f5901cc74308974ba6 g
100644 blob 06d39d8eacc78062af472cbfa40e819c9308d769 go.mod
100644 blob 25feac03517d5e29ca46d53d032ac0edffe447b9 go.sum
040000 tree c9728e7e3f435927d90c61ab24258f7cb593d443 lab
040000 tree 1313cea3ad290695a24257b82583acad3427be75 tcp
$ git ls-tree head ./tcp/pre/
100644 blob 00e3da7a0b70f90359ceed819de68d9910c9889c tcp/pre/build.sh
$ git update-index --chmod=+x tcp/pre/build.sh
$ git commit -am "chmod +x build.sh"
[mqzj 693d3f6]
chmod +x build.sh
1 file changed, 0 insertions(+), 0 deletions(-)
mode change 100644 =
> 100755 tcp/pre/build.sh
再次檢視 檔案許可權
$ git ls-tree head ./tcp/pre/
100755 blob 00e3da7a0b70f90359ceed819de68d9910c9889c tcp/pre/build.sh
Git修改檔案許可權
目錄 使用場景 方法一 使用shell修改許可權 方法二 使用git命令修改許可權 有時會涉及到將檔案許可權的修改提交到版本庫中。例如我們建立的shell檔案預設情況下是沒有執行許可權的,如果使用者拉取了倉庫中的 在執行 前需要手動的將包中的所有shell檔案新增執行許可權。當然我們也可以直接將檔案...
Git修改檔案許可權方法
檢視repository中檔案許可權 git ls tree head 100644 blob xx gradlew 修改許可權git update index chmod x gradlew許可權修改後,相當於檔案進入了index中。提交修改 git commit m revise permiss...
git修改檔案許可權引發衝突
在發布專案到線上時,很多時候需要修改檔案的許可權,如果是使用git版本管理軟體來發布的話,那麼下次更新線上檔案的時候就會提示檔案衝突。明明檔案沒有修改,為什麼會衝突呢?原來git把檔案許可權也算作檔案差異的一部分。下面筆者自己做了個簡單的例子來演示這種情況。1 修改版本庫的檔案的許可權,然後使用di...