Solução do erro: fatal: Dirty repository: Having uncommitted changes. Exiting...
- janeiro 02, 2022
- Programação
- Postar um comentário
Ao criar um pipeline com o arquivo ".gitlab-ci.yml
" no GitLab e atualizar o assets, por exemplo com
comando "npm run production
", o git-ftp apresenta alguns problemas, como “fatal: Dirty
repository: Having uncommitted changes. Exiting...”, “nothing to commit, working tree
clean” ou “Unknown SHA1 object, could not determine changed files, taking all files”.
O primeiro problema acontece ao tentar fazer o “git ftp push
” depois que houve modificações nos arquivos
locais (por exemplo, arquivos de assets, como css e js), sem te efetuado um commit antes, para resolver, basta
apenas fazer um commit antes de efetuar o push.
Porém ao efetuar o commit, e realizar o comando “git ftp push
” novamente, aparentemente dar certo, mas
ao tentar sincronizar novamente, iremos nos deparar com o erro “Unknown SHA1 object, could not determine
changed files, taking all files.”
Esse outro erro se dar porque o sha1 gravado no arquivo “.git-ftp.log
”, é do commit local e não da
branch remota, para ajustar isso, podemos reverter o ultimo commit e atualizar o “.git-ftp.log
” com o
número do commit da brench remota. Segue a instruções completa do que precisamos fazer no arquivo
“.gitlab-ci.yml”:
Arquivo: .git-ftp.log
image: dotsunited/git-ftp script: - echo "Adicionar os assets mortificados" - git config --global user.email you@example.com #não precisa alterar - git config --global user.name "Your Name" #não precisa alterar - git add * - git commit -m "Commit assets" - echo "Sincronizar com o ftp" - git config git-ftp.url "$FTP_HOST" - git config git-ftp.user "$FTP_USERNAME" - git config git-ftp.password "$FTP_PASSWORD" - git ftp push --auto-init --force - echo "Atualizar o .git-ftp.log com o commit remoto" - git reset --hard HEAD@{1} - git ftp catchup
Tags: gitlab, git-ftp, pipeline, CI/CD e .gitlab-ci.yml.
Postar um comentário
