Eu sou novato no git e estou trabalhando no git.
Eu adicionei alguns arquivos no git:
git add <file1>
git add <file2>
então eu queria empurrar isso para revisão, mas por engano eu fiz
git commit
para que os arquivos que alterei não passem por revisões.
Agora, se eu inserir o comando:
git status
diz
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
Eu quero reverter esse commit e quero enviar esses arquivos para revisão ao invés de commit. Alguém pode me dizer como posso fazer isso?
git reset HEAD^
Respostas:
Você não pode enviar nada que ainda não tenha sido confirmado. A ordem das operações é:
git add
- este estágio suas mudanças para comprometergit commit
- isso confirma suas mudanças encenadas localmentegit push
- isso empurra suas alterações confirmadas para um controle remotoSe você empurrar sem se comprometer, nada será enviado. Se você fizer commit sem adicionar, nada será confirmado. Se você adicionar sem comprometer, nada acontece, git meramente lembra que as mudanças que você adicionou devem ser consideradas para o próximo commit.
A mensagem que você está vendo (seu branch está à frente em 1 commit) significa que seu repositório local tem um commit que ainda não foi enviado.
Em outras palavras:
add
ecommit
são operações locaispush
,pull
efetch
são operações que interagem com um controle remoto.Uma vez que parece haver um fluxo de trabalho de controle de origem oficial no local onde você trabalha, você deve perguntar internamente como isso deve ser tratado.
fonte
origin
repositório. Eu também recomendo a leitura de alguns tutoriais / introduções para git em git-scm.com/documentationgit reset HEAD^ --soft
(Salve suas alterações, de volta ao último commit)git reset HEAD^ --hard
(Descartar as alterações, voltar ao último commit)fonte
Se você deseja apenas descartar as alterações e reverter para o último commit (aquele que você queria compartilhar):
Você pode querer verificar para ter certeza absoluta de que deseja isso (
git log
), porque você perderá todas as alterações.Uma alternativa mais segura é correr
fonte
Resolvi isso executando um simples:
Nada mais. Agora está mostrando:
fonte
git reset HEAD ^
então os arquivos modificados devem aparecer.
Você pode mover os arquivos modificados para um novo ramo
usar,
git checkout -b newbranch
git checkout commit -m "files modified"
git push origin newbranch
git checkout master
então você deve estar em um branch limpo e suas alterações devem ser armazenadas em newbranch. Mais tarde, você poderia simplesmente mesclar esta mudança no branch master
fonte
remove os arquivos especificados do próximo commit
fonte