O que cada um de [y, n, q, a, d, /, K, j, J, g, e,?] Representa no contexto de git -p

272

Ao usar o modo -p git add -pou git stash -po que cada uma das letras representa?

Suponho que ysim e nnão. Quais são os outros?

[y, n, q, a, d, /, K, j, J, g, e,?]

chrisjlee
fonte
64
Se você tentar a ?opção, você descobrirá
Abe Voelker
7
Talvez você só precise rolar um pouco?
Cosimo
1
A impressão na resposta aceita inclui opções não listadas ao inserir '?'
Mark

Respostas:

325

O -pmodo significa patch, cuja ajuda é difícil de encontrar, mas se você verificar, git add --helpencontrará o seguinte

   patch
       This lets you choose one path out of a status like selection. After choosing the path, it presents the diff between the index and the working tree file and asks you if you want to stage the change of each hunk. You can select one of the following options and type return:

           y - stage this hunk
           n - do not stage this hunk
           q - quit; do not stage this hunk nor any of the remaining ones
           a - stage this hunk and all later hunks in the file
           d - do not stage this hunk nor any of the later hunks in the file
           g - select a hunk to go to
           / - search for a hunk matching the given regex
           j - leave this hunk undecided, see next undecided hunk
           J - leave this hunk undecided, see next hunk
           k - leave this hunk undecided, see previous undecided hunk
           K - leave this hunk undecided, see previous hunk
           s - split the current hunk into smaller hunks
           e - manually edit the current hunk
           ? - print help
AD7six
fonte
8
@VicGoldfeld d continuará para o próximo arquivo enquanto q abortaria o processo completamente?
Steve
5
qse não repor quaisquer alterações anteriormente encenadas. Tudo o que você já encenou permanece encenado.
Alexander Bird
Eu uso -ppara esconder, não sabia que você poderia usar isso addtambém! Apenas para adicionar a esta resposta, enquanto houver menção ao -p | --patchsinalizador, este cmd: git stash --helpNÃO fornece as mesmas informações sobre as opções de patch git add --help.
Phil Gibbins
31

O significado dessas letras pode ser encontrado digitando ? e pressione a tecla Enter . Para mim, estes não vieram quando correram git add --help. Eu tenho o significado dessas opções como abaixo: -

Arup-iMac:$ git add -p
diff --git a/app/interactors/reporting_groups/list_colleagues.rb b/app/interactors/reporting_groups/list_colleagues.rb
index adc28af..f46f5e3 100644
--- a/app/interactors/reporting_groups/list_colleagues.rb
+++ b/app/interactors/reporting_groups/list_colleagues.rb
@@ -14,7 +14,4 @@ module ReportingGroups
         reporting_group.employees_from_team_sub_reporting_groups
       else
         reporting_group.users
-      end
-    end
-  end
-end
+      
Stage this hunk [y,n,q,a,d,/,e,?]? ? <-- Look here, what I typed to get these.
y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk nor any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk nor any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help
@@ -14,7 +14,4 @@ module ReportingGroups
         reporting_group.employees_from_team_sub_reporting_groups
       else
         reporting_group.users
-      end
-    end
-  end
-end
+      
Stage this hunk [y,n,q,a,d,/,e,?]? 
Arup Rakshit
fonte