Eu tenho o diretório de trabalho (# 1) que contém o diretório do fornecedor (# 2). Há uma dependência que eu queria extrair manualmente sem o composer (versão php do npm / gem). Eu estava trabalhando no # 1, não salvei / confirmei as alterações, quando decidi que quero atualizar a biblioteca no # 2. Eu naveguei até vendor / myname e criei o repositório git pull.
Infelizmente, ele começou a puxar e mesclar para # 1, em vez de criar um novo diretório na pasta do fornecedor.
Agora eu tenho:
- Pasta nº 1 com minhas alterações
- Pasta nº 1 com arquivos que não quero do repositório errado
- Conflitos de mesclagem nº 1, como composer.json, Readme.md ... (arquivos gerais)
Eu quero "desfazer" este último git pull sem perder nenhuma mudança que fiz na pasta # 1. Como posso fazer isso?
Respostas:
git merge --abort
pode ser o que você está procurando.fonte
git status
para confirmar.-Git moderno:
Mais velho:
Old-school (aviso: descartará todas as alterações locais):
Mas, na verdade, é importante notar que isso
git merge --abort
equivale apenas a umgit reset --merge
dado queMERGE_HEAD
está presente. Isso pode ser lido na ajuda do git para o comando merge.Depois de uma mesclagem com falha, quando não houver
MERGE_HEAD
, a mesclagem com falha pode ser desfeita com,git reset --merge
mas não necessariamente comgit merge --abort
, portanto , não são apenas sintaxe antiga e nova para a mesma coisa . Pessoalmente, achogit reset --merge
muito mais útil no trabalho diário.fonte
Com Git 2.10 (Q3 2016), você saberá o que fazer, pois
git status
irá propor agit merge --abort
opção.Veja commit b0a61ab (21 de julho de 2016) de Matthieu Moy (
moy
) .(Fundido por Junio C Hamano -
gitster
- no commit 5a2f4d3 , 03 de agosto de 2016)fonte