Path: csiph.com!weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Patricia Ferreira Newsgroups: pt.comp.so.linux Subject: Re: Como limpar um =?utf-8?Q?reposit=C3=B3rio?= GIT Date: Mon, 09 Sep 2024 21:02:27 -0300 Organization: A noiseless patient Spider Lines: 49 Message-ID: <87tteope98.fsf@example.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Date: Tue, 10 Sep 2024 02:02:37 +0200 (CEST) Injection-Info: dont-email.me; posting-host="813e489e819e6bbcd76739cb229527c4"; logging-data="2736330"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19HdPlysp0c/xDwU6POe7QdQO9Zao+rJMA=" Cancel-Lock: sha1:D0VeQAiaoyl+dk66+C+rZWMC7fg= sha1:iP9iicLA5jtWavLTxcMg6tz9G3I= Xref: csiph.com pt.comp.so.linux:3212 João Jerónimo writes: > Olá, > > Costumo usar o GIT como ferramenta para colocar programas em > produção. Basicamente, quando numa máquina desenvolvo código, insiro-o > no repositório remoto, com: > git add . > git commit > git push > Já na outra máquina, alguns scripts fazem rotineiramente comandos que, > em esquema, envolvem: > git pull --all > git pull > git checkout tag_que_acompanha_a_revisão_estável > > Contudo, costumo encontrar alguns problemas nesta linha de trabalho, > como por exemplo: A linguagem é Python, e o Python compila o código > para bytecode, deixando a working tree cheia de diretórios __pycache__ > e .pyc. Estes ficheiros estão todos .gitignorados, mas não são > apagados pelos comandos acima referidos. Gostaria, contudo, de manter > limpas estas cópias que se encontram em produção. > > A solução que tenho atualmente é que, antes de mais nada, os script > fazem sempre: > # sudo rm -rf * > # git checkout . > > Estes dois comandos conseguem restaurar um repositório GIT para ele > ficar como se tivesse acabado de ser clonado e navegado para um > determinado commit. > > O que eu queria era acabar com o comando «sudo rm -rf *», que para > além de ser um comando estanho ao git, é perigoso, e substituí-lo por > outro comando que faça a mesma coisa. > Alguém conhece alguma solução mais apropriada do que esta? Tenho a impressão de que você executa o software no mesmo diretório em que o código-fonte é gerenciado pelo git. Uma ideia é você não fazer isso. Diga make install dir=/usr/local/my/place a seu shell e então execute o software a partir de lá. Quando quiser recomeçar, diga make reinstall dir=/usr/local/my/place a seu shell. Claro, você precisa escrever o Makefile.