Quando eu executo git add -p
, há uma maneira do git selecionar arquivos recém-criados como pedaços para selecionar?
Portanto, se eu fizer um novo arquivo chamado foo.java
e executar git add -p, o git não me deixará escolher o conteúdo desse arquivo a ser adicionado ao índice.
git add -N
faz, ele apenas adiciona os arquivos não rastreados especificados ao índice, mas sem conteúdo.Quando eu tentava
git add -p someNewFile.txt
em um novo arquivo (um arquivo não rastreado), git simplesmente exibiaNo changes.
e parava. Eu tive que dizer ao git que pretendia rastrear o novo arquivo primeiro.No entanto, como o arquivo não foi rastreado, ele apareceria como um pedaço gigante que não poderia ser dividido (porque é tudo novo!). Então, eu precisei editar o pedaço em pedaços menores. Se você não estiver familiarizado com isso, verifique esta referência para começar.
Atualizar - Informações de edição do Hunk Eu queria atualizar isso caso a referência acima desapareça. Como o novo arquivo não está rastreado,
git add -p
o mostrará cada linha do arquivo como uma nova linha em um trecho. Em seguida, ele perguntará o que você deseja fazer com esse pedaço, apresentando o seguinte prompt:Stage this hunk [y,n,q,a,d,/,e,?]?
Assumindo que você não deseja comprometer todo o pedaço (e, portanto, todo o arquivo; porque não tenho certeza por que você gostaria de usar
git add -p
nesse caso?), Você desejará especificar a opçãoe
para informar ao git que deseja editar o pedaço.Uma vez que você diga ao git que deseja editar o pedaço, ele deve levá-lo ao editor de sua escolha para que você possa fazer suas alterações. Todas as linhas devem ser prefixadas com a
+
e git tem alguns comentários explicativos (prefixados com a#
) no final do arquivo. Simplesmente exclua todas as linhas que você não deseja em seu commit inicial do arquivo. Em seguida, salve e feche o editor.Explicação do Git sobre as opções do git:
fonte
git add -N someNewFile.txt
seguido porgit add -p
git add -p
trata-se realmente de adicionar alterações a arquivos já rastreados.O comando para selecionar interativamente os arquivos a serem adicionados é
git add -i
. Por exemplo:(O comando real tem cores que eu não poderia cortar e colar aqui, então é melhor do que parece)
Na verdade, o comando p atch de
git add -i
faz o mesmo quegit add -p
, então o segundo é um subconjunto do primeiro (embora eu admita que me amoadd -p
eadd -i
me odeio !).fonte
No changes.
em um novo arquivo. O OP estava perguntando como adicionar pedaços de um novo arquivo, não do arquivo inteiro. Eu acredito que--intent-to-add
ainda é necessário aqui.add -p
por si só não funcionará, mas esta resposta sugereadd -i
, o que funciona.git add -i
. No entanto, você pode fazer a mesma coisa de forma não interativa comgit add -N
.Há também uma abordagem muito semelhante, usando o
--cached
sinalizador ...1) Transforme suas mudanças não planejadas em preparadas, assim como o arquivo adicionado.
2) Observe o diff (nota: você pode incluir edições e novos arquivos).
3) Crie o patch.
fonte
git add -p
é que ele não adiciona tudo, mas deixe-me escolher o que desejo adicionar. Esta solução adicionaria tudo cegamente.