10
respostas

Não consigo faze r add, rm, checkout

o status é:

C:\Users\csuzu\Documents\GitProjetos\repositorio>git status HEAD detached at v0.1 Changes to be committed: (use "git reset HEAD ..." to unstage)

    modified:   index.html

Changes not staged for commit: (use "git add/rm ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory)

    deleted:    index.html

quando tento fazer um checkout: C:\Users\csuzu\Documents\GitProjetos\repositorio>git checkout v0.1 fatal: Unable to create 'C:/Users/csuzu/Documents/GitProjetos/repositorio/.git/index.lock': File exists.

Another git process seems to be running in this repository, e.g. an editor opened by 'git commit'. Please make sure all processes are terminated then try again. If it still fails, a git process may have crashed in this repository earlier: remove the file manually to continue.

10 respostas

Olá Alan!

Pelo que entendi, você tem um arquivo .lock e isso significa que o Git bloqueou seu arquivo index.html. Esse arquivo que o próprio Git criou impede que alterações ocorram modificações no seu index.html por algum outro usuário. Mas de acordo com o texto do erro que você colocou, pode ser que tenha ocorrido algum crash no Git e esse arquivo continuou existindo.

Acredito que se você entrar em C:\Users\csuzu\Documents\GitProjetos\repositorio\.git\ terá o arquivo index.lock. Removendo ele, é para voltar funcionar normalmente.

Espero ter ajudado, mas se não resolveu, estaremos a disposição!

Bons estudos!

deletei o index.lock ; como tinha deletado o index.html por engano, quero restabelece-lo com o comando Checkout, mas dá msg estranha. o status é: C:\Users\csuzu\Documents\GitProjetos\repositorio>git status HEAD detached at v0.1 Changes to be committed: (use "git reset HEAD ..." to unstage)

    deleted:    index.html

a msg apos comando checkout C:\Users\csuzu\Documents\GitProjetos\repositorio>git checkout v0.1 HEAD is now at c5d6533 versao 0.1 do index.html D index.html :

o index.html não aparece no diretorio: C:\Users\csuzu\Documents\GitProjetos\repositorio>dir O volume na unidade C é OS O Número de Série do Volume é 1C9E-5807

Pasta de C:\Users\csuzu\Documents\GitProjetos\repositorio

06/06/2019 20:24

. 06/06/2019 20:24 .. 0 arquivo(s) 0 bytes 2 pasta(s) 110.298.853.376 bytes disponíveis

Certo.

Tente o comando checkout com o nome do arquivo: git checkout index.html. este comando irá restaurar o arquivo antes da ultima mudança.

Tem também um outro comando que você pode tentar retroceder um commit: git rev-list -n 1 HEAD. Note que -n 1 é a quantidade de commits que irá retroceder.

o resutado do checkout index.html q continua com problema , foi: C:\Users\csuzu\Documents\GitProjetos\repositorio>git checkout index.html error: pathspec 'index.html' did not match any file(s) known to git

não entendi o ultimo comando q vc recomendado de retroceder o commit.

Oi Alan!

Desculpe a demora. O comando é exatamente: git rev-list -n 1 HEAD

O que quis dizer é que o número é referente a quantos commits você quer voltar.

não consigo sair do lugar. necessito retornar o index.html e como disse tentei fazer o git checkout index.html e não tenho sucesso:

o git status é: C:\Users\csuzu\Documents\GitProjetos\repositorio>git status HEAD detached at v0.1 Changes to be committed: (use "git reset HEAD ..." to unstage)

    deleted:    index.html

ao tentar fazer conforme sugestão o git rev-list -n 1 HEAD , o resultado foi: C:\Users\csuzu\Documents\GitProjetos\repositorio>git rev-list -1 1 HEAD fatal: ambiguous argument '1': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git [...] -- [...]'

Alan, pelo que vi, você digitou o comando passando o argumento -11. Como na imagem abaixo.

Você digitou o comando com o -n 1, ou seja, exatamente git rev-list -n 1 HEAD?

De qualquer modo, vou passar adiante este seu tópico, para ver se mais alguém consegue te ajudar.

Fabiano, Executei o comando git rev-list -n 1 HEAD e o resultado foi: C:\Users\csuzu\Documents\GitProjetos\repositorio>git rev-list -n 1 HEAD c5d65339242003b1a80602414c785a797506a9f7

o git status é: C:\Users\csuzu\Documents\GitProjetos\repositorio>git status HEAD detached at v0.1 Changes to be committed: (use "git reset HEAD ..." to unstage)

    deleted:    index.html

Tô meio perdido o q fazer agora.

Alan, acho que consegui simular sua situação.

Encontrei alguns comandos que consegui restaurar o arquivo index.html. Mas provavelmente essa seja minha última esperança.

Primeiro use o comando git reset --hard ele eliminará o último commit.

git checkout master para colocar na branch master.

git reflog irá mostrar uma lista de log das alterações que ocorreram. É aí que você conseguirá restaurar o index.html a partir de um commit que foi feito antes.

git cherry-pick <hash do commit que tinha o arquivo>

Neste caso eu usei git cherry-pick 1094409 que era a hash do meu primeiro commit. Na imagem a seguir tem esse ultimo passe para não ter dúvidas, lembrando que o que está sublinhado de verde é o hash do commit que usei para restaurar o arquivo:

Fabiano, Fiz o git reset --hard e o resultado foi: C:\Users\csuzu\Documents\GitProjetos\repositorio>git reset --hard HEAD is now at c5d6533 versao 0.1 do index.html

depois conforme orientação o git checkout master e o resultado foi: C:\Users\csuzu\Documents\GitProjetos\repositorio>git checkout master Previous HEAD position was c5d6533 versao 0.1 do index.html Switched to branch 'master'

fiz o git reflog e o resultado foi: C:\Users\csuzu\Documents\GitProjetos\repositorio>git reflog 7b30fb9 (HEAD -> master, origin/master) HEAD@{0}: checkout: moving from c5d65339242003b1a80602414c785a797506a9f7 to master c5d6533 (tag: v0.1) HEAD@{1}: checkout: moving from b0b4d89dce0422394b146af9d5fef2f879860d43 to v0.1 b0b4d89 (tag: v0.2) HEAD@{2}: checkout: moving from c5d65339242003b1a80602414c785a797506a9f7 to v0.2 c5d6533 (tag: v0.1) HEAD@{3}: checkout: moving from master to v0.1 7b30fb9 (HEAD -> master, origin/master) HEAD@{4}: clone: from https://github.com/jcfonsecagit/repositorio.git

fiz git status e o resultado foi: C:\Users\csuzu\Documents\GitProjetos\repositorio>git status On branch master nothing to commit, working tree clean

pergunta: o arquivo index.html tá no diretorio, acho q posso trabalhar com ele do zero, não é? preciso fazer ainda fazer o tal do git cherry-pick mais um hash que não sei qual é?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software