Eu li algumas perguntas sobre permissões de arquivo no Git e ainda estou um pouco confuso. Eu tenho um repositório no GitHub bifurcado de outro. Após a mesclagem, eles devem ser idênticos. Contudo:
$ git diff --summary origin/epsilon master/epsilon
mode change 100644 => 100755 ants/dist/sample_bots/csharp/compile.sh
mode change 100644 => 100755 ants/dist/starter_bots/coffeescript/MyBot.coffee
mode change 100644 => 100755 ants/dist/starter_bots/coffeescript/ants.coffee
mode change 100644 => 100755 ants/util/block_test.sh
mode change 100644 => 100755 manager/mass_skill_update.py
mode change 100644 => 100755 worker/jailguard.py
mode change 100644 => 100755 worker/release_stale_jails.py
mode change 100644 => 100755 worker/start_worker.sh
Tentei alterar as permissões de arquivo, mas isso não altera os resultados do diff.
windows
git
diff
file-permissions
Synesso
fonte
fonte
core.filemode
configureifalse
) realmente tenham o bit de execução definido.--add
bandeira para a execução, por algum motivo:git update-index --add --chmod=+x <file>
. Depois disso, o arquivo já estava no palco com o chmodDe outra pergunta aqui no stackoverflow: Como faço para o Git ignorar alterações no modo de arquivo (chmod)?
Experimentar:
Do git-config (1) :
fonte
hard
tentei redefinir. Isso fez o truque para mim.Uma linha prática para o Git Bash:
Ele marcará todos os
.sh
arquivos como executáveis. Depois disso, você apenas precisagit commit
.fonte
Se você usa Cygwin git (ou Linux git também, suponho), há uma boa chance de que sua configuração core.filemode tenha sido definida no nível do projeto em $ projdir / .git / config. Descobri que precisava fazer o seguinte para fazer com que meu Cygwin git e Windows git coexistissem bem em um sistema de arquivos do Windows sem que existissem alterações de modo de arquivo inexistentes o tempo todo:
Isso permite que meu Cygwin git continue vendo alterações no modo de arquivo, que geralmente são relevantes, enquanto instrui o git do Windows a ignorar as alterações no modo de arquivo que ele vê, que geralmente são falsos positivos.
fonte
Corrigi-o alterando as permissões de arquivo no Ubuntu, commit, push e tudo OK. Parece que não funcionaria com o msysgit no Windows / NTFS.
fonte
Primeiro verifique as permissões do arquivo usando o comando abaixo.
Em seguida, altere as permissões. Aqui "x" representa permissões de execução.
Agora verifique novamente as permissões.
==============================================
se você estiver usando o Windows PC, mas implantando na máquina Linux. Execute o comando abaixo em primeiro lugar para torná-lo compatível com a máquina linux
dos2unix scriptname.ext scriptname.ext
fonte
git update-index --chmod=1777 'scriptname.ext'
?