2010-11-06 34 views
31

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

+0

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

+0

sont probablement plusieurs autres doublons autour; vous pouvez rechercher la réponse (update-index --assume-unchanged) et trouver toutes sortes de choses. – Cascabel

Répondre

60

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).

+0

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? –

+2

@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

+1

Je voudrais pouvoir vous donner plus d'1 upvote pour cette information super utile, merci encore! – DrCord