Estou tentando git add --interactive
adicionar seletivamente algumas alterações ao meu índice, mas recebo continuamente a mensagem "Seu trecho editado não se aplica. Editar novamente ...". Eu recebo esta mensagem mesmo se eu escolher a opção e, e imediatamente salvo / fecho meu editor. Em outras palavras, sem editar o pedaço, o patch não se aplica.
Aqui está o exemplo exato que estou usando (estou tentando montar uma pequena demonstração):
Arquivo original:
first change
second change off branch
third change off branch
second change
third change
fourth change
Novo arquivo:
Change supporting feature 1
first change
second change off branch
third change off branch
second change
third change
fourth change
bug fix 1
change supporting feature 1
Estou tentando mostrar como usar git add --interactive
para adicionar apenas a linha "bug fix 1" ao índice. Executando um suplemento interativo no arquivo, eu escolho o modo de patch. Me apresenta com
diff --git a/newfile b/newfile
index 6d501a3..8b81ae9 100644
--- a/newfile
+++ b/newfile
@@ -1,6 +1,9 @@
+Change supporting feature 1
first change
second change off branch
third change off branch
second change
third change
fourth change
+bug fix 1
+change supporting feature 1
Eu respondo com divisão, seguido de "não" para aplicar o primeiro pedaço. O segundo pedaço, tento editar. Originalmente, tentei excluir o resultado final - não funcionou. Deixar o pedaço sozinho também não funciona, e não consigo descobrir por quê.
-
's no início das linhas que não existem no arquivo para começar; é um diff e não pode deletar linhas que ainda não estejam lá. Então, se uma linha no diff começar com+
e você alterá-la para-
git, passa para WTF? porque agora a linha marcada para remoção não existe para começar (em vez disso, essa linha foi marcada para adição, e quando uma linha marcada para adição está marcada para remoção git não pode remover uma linha que ainda não esteja no arquivo) .