Quand je cours git add -p
, y a-t-il un moyen pour git de sélectionner les fichiers nouvellement créés comme morceaux à sélectionner?
Donc, si je crée un nouveau fichier appelé foo.java
, puis lancez git add -p, git ne me laissera pas choisir le contenu de ce fichier à ajouter à l'index.
git add -N
fait, il ajoute simplement les fichiers non suivis spécifiés à l'index, mais sans contenu.Quand j'essayais
git add -p someNewFile.txt
un nouveau fichier (un fichier non suivi), git sortait simplementNo changes.
et s'arrêtait. J'ai dû dire à git que j'avais l'intention de suivre le nouveau fichier en premier.Cependant, comme le fichier n'a pas été suivi, il apparaîtrait comme un morceau géant qui ne pouvait pas être divisé (car tout est nouveau!). Alors, j'ai eu besoin de modifier le morceau en petits morceaux. Si vous n'êtes pas familier avec cela, consultez cette référence pour commencer.
Mise à jour - Informations d'édition Hunk Je voulais mettre à jour cela au cas où la référence ci-dessus disparaîtrait. Parce que le nouveau fichier n'est pas suivi,
git add -p
affichera chaque ligne du fichier comme une nouvelle ligne dans un morceau. Il vous demandera ensuite ce que vous voulez faire de ce morceau, vous donnant l'invite suivante:Stage this hunk [y,n,q,a,d,/,e,?]?
En supposant que vous ne voulez pas valider tout le morceau (et donc, le fichier entier; parce que je ne sais pas pourquoi vous voudriez utiliser
git add -p
dans ce cas?), Vous voudrez spécifier une optione
pour dire à git que vous voulez éditer le morceau.Une fois que vous avez dit à git que vous voulez éditer le morceau, il devrait vous déposer dans l'éditeur de votre choix afin que vous puissiez apporter vos modifications. Toutes les lignes doivent être préfixées par a
+
et git a quelques commentaires explicatifs (préfixés par a#
) à la fin du fichier. Supprimez simplement toutes les lignes que vous ne voulez pas dans votre validation initiale du fichier. Puis enregistrez et quittez l'éditeur.Explication de Git sur les options de morceau de git:
la source
git add -N someNewFile.txt
suivi degit add -p
git add -p
consiste en fait à ajouter des modifications à des fichiers déjà suivis.La commande permettant de sélectionner interactivement les fichiers à ajouter est
git add -i
. Par exemple:(La vraie commande a des couleurs que je ne pouvais pas couper-coller ici, donc c'est plus joli qu'il n'y paraît)
En fait, la commande p atch de
git add -i
fait la même chose quegit add -p
, donc le second est un sous-ensemble du premier (même si j'avoue que je m'aimeadd -p
et queadd -i
je me déteste !).la source
No changes.
sur un nouveau fichier. L'OP demandait comment ajouter des morceaux à partir d'un nouveau fichier, pas du fichier entier. Je crois que--intent-to-add
c'est toujours nécessaire ici.add -p
seul ne fonctionnera pas, mais cette réponse suggèreadd -i
, ce qui fonctionne.git add -i
. Cependant, vous pouvez faire la même chose de manière non interactive avecgit add -N
.Il existe également une approche très similaire utilisant le
--cached
drapeau ...1) Transformez vos modifications non organisées en étapes, tout comme votre fichier ajouté.
2) Regardez le diff (note: vous pouvez inclure à la fois des modifications et de nouveaux fichiers).
3) Créez le patch.
la source
git add -p
c'est qu'il n'ajoute pas tout, mais laissez-moi choisir ce que je veux ajouter. Cette solution ajouterait tout aveuglément.