J'ai forké un projet sur github et j'ai commencé à le déconner sur ma propre machine, je veux valider les changements que j'ai faits à ma fourche sur github mais sans commiting les changements que j'ai apportées au fichier .cfg, car il contient des choses comme mot de passe db etcComment dire à git d'ignorer tout autre modification dans un seul fichier sans le retirer du repo
Répondre
Utilisez ceci:
git update-index --skip-worktree path/file.cfg
Et pour restaurer:
git update-index --no-skip-worktree path/file.cfg
Enfin, si vous voulez la liste des fichiers qui sont marqués avec skip-worktree
:
git ls-files -v | grep ^S | awk '{print $2}'
Pour simplifier, vous pouvez créer un alias pour cela dans votre $HOME/.gitconfig
:
[alias]
ls-ignored-changes = !git ls-files -v | grep ^S | awk '{print $2}'
Ensuite, vous pouvez taper simplement git ls-ignored-changes
. Il fonctionne même avec l'auto-complétion si vous avez le git-completion
en place (pour bash, tcsh, zsh).
Heya, j'ai déjà essayé hélas, puis quand je vais commettre c'est prêt à commettre. Ou est-ce que ça ne fait que l'arrêter quand je pousse? –
@Gabriel Baker: c'est parce que vous avez déjà mis en scène le fichier. Désinstallez-le en utilisant 'git reset path/file.cfg'. – jweyrich
Je voudrais pouvoir vous donner plus d'1 upvote pour cette information super utile, merci encore! – DrCord
duplication possible de [Ignorer les fichiers modifiés (mais non validés) dans git?] (Http://stackoverflow.com/questions/655243/ignore-modified-but-not-committed-files-in-git) – Cascabel
sont probablement plusieurs autres doublons autour; vous pouvez rechercher la réponse (update-index --assume-unchanged) et trouver toutes sortes de choses. – Cascabel