J'adore git ajouter --interactive . Cela fait maintenant partie de mon flux de travail quotidien.
Le problème semble qu'il ne fonctionne pas avec les fichiers non suivis. Ce que je veux faire, c'est suivre un nouveau fichier, mais n'en ajouter qu'une partie, c'est-à-dire que certaines parties de ce nouveau fichier ne sont pas encore prêtes à être mises en scène.
Par exemple, avec git add -i, je peux choisir l'option de patch et même éditer des morceaux individuels afin de mettre en scène des parties du nouveau code, en laissant les commentaires de code de débogage non organisés. J'adore travailler de cette façon car cela rend évident quels endroits du méga patch sur lesquels je travaille actuellement ont encore besoin de travail.
Malheureusement, je ne semble pas pouvoir faire de même avec un fichier non suivi. Soit je met en scène tout le dossier, soit rien. La solution de contournement que j'utilise consiste à mettre en scène ou même à valider un nouveau fichier lorsqu'il est vide, puis à mettre en scène les modifications individuelles de la manière habituelle. Mais cette solution ressemble à un hack sale et quand j'oublie ou change d'avis, cela crée plus de problèmes qu'il ne devrait y en avoir.
La question est donc la suivante: comment mettre en scène uniquement une partie d'un nouveau fichier, afin que ce nouveau fichier soit suivi mais en laissant tout ou partie de son contenu sans mise en scène?
</shame>
-N
découverte, merci! Bien que je préfère le combiner avec-p
dans ce cas.gid add -N the_file
&git add -p
. Il faut ajouter que ça-N
marche aussi avec-A
La façon la plus simple de le faire (et la mise en scène interactive à mon humble avis en général) est
git gui
. Il est fourni avec git et devrait fonctionner sur presque toutes les plates-formes prises en charge par git.Exécutez simplement
git gui
et une interface graphique s'ouvrira qui permet de mettre en scène et de supprimer les mecs et même des lignes uniques de fichiers suivis et non suivis.la source
git gui
. Dans Debian, par exemple, il se trouve dans un paquet séparé appelé «git-gui».git gui
n'a jamais fonctionné. En fait, il désactive ces options de menu .git gui
un nouveau fichier, vous devez d'git add -N new_file
abord exécuter - voir la réponse de Richard Hansen.Démo simple:
e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
place. Je ne recommande pas de faire ça_NUL:
place de/dev/null
. Sinon, utilisez quelque chose commeecho -n '' | git hash-object --stdin -w
Maintenant, l'index contiendra en
newfile
tant que blob vide, et le blob vide a été entré dans la base de données d'objets s'il n'existait pas encore:Cela devrait être précisément ce que vous voulez. Puis-je également recommander le plugin fugitif vim pour une gestion d'index très intelligente (voir Better git add -p? )
la source
Edit: cela ne semble pas fonctionner maintenant. Je suis sûr que c'était avant (sur git 1.7.1). Dans le cas où cela ne fonctionne pas, je suggère de mettre
/dev/null
en scène comme le suggère ci-dessus:Si vous êtes sous Windows (sans
/dev/null
), vous pouvez le remplacer par le chemin d'accès à un fichier vide.Réponse originale
Tu veux
Cela ajoute des fichiers non suivis pour moi. Depuis la page de manuel:
la source
git add -p newfile
ne fonctionne pas du tout (effet nu) etgit add --interactive
'[a] dd untracked' a l'effet quigit add newfile
a; Modifier également vérifié avec git 1.7.5.3; pas déJuste pour le compte rendu d'une autre possibilité: j'utilise
Et puis vous pouvez mettre en scène des mecs, ou les modifier sur place.
la source
add -N
avecadd -i
. J'ai juste ajouté celaadd -p
au lieu deadd -i
travaux aussi.