Certains comment les fichiers .orig sont vérifiés dans mon référentiel git pendant la fusion, qui sont maintenant affichés dans le secteur modifié et non suivi. Mais je ne veux plus de ces fichiers dans mon référentiel. Comment faire ça.
modified: Gemfile.lock.orig
# modified: Gemfile.orig
# modified: app/assets/images/bg_required.png.orig
# modified: app/assets/javascripts/application.js.orig
etc...
Toute aide serait appréciée.
Réponses:
La meilleure solution dans ce cas est de rester simple et de se débarrasser de ces fichiers indépendamment de git:
Sinon, dans Windows / PowerShell, vous pouvez exécuter la commande suivante
la source
git clean -df
ne le fait pas. Pourquoi devrions-nous nettoyer manuellement les déchets qu'il laisse derrière lui?Essayez
git clean
plus d'informations que vous pouvez trouver ici ou icila source
git rm <filename>
, puis le valider.Après ce fichier, ajoutez * .orig dans git ignore.git clean -i
est vraiment agréable. il vous donnera une liste de fichiers qui seront supprimés et vous donnera des options sur la façon de traiter la liste (filtrer la liste, pouvoir supprimer tout sur la liste, et quelques autres options).git clean -f -e '*.*' -e '!*.orig'
il n'y a qu'un modèle d'exclusion, mais il prend en charge un peu les modèles négatifs. Nous pouvons donc exclure tous les fichiers*.*
, puis annuler l'exclusion des seuls*.orig
fichiers.tu peux faire:
Pour plus d'informations, reportez-vous à Git mergetool génère des fichiers .orig indésirables
la source
Vous pouvez ignorer les fichiers en utilisant .gitignore
Mettez simplement * .orig dans la liste comme indiqué ici
https://help.github.com/articles/ignoring-files
pour supprimer les fichiers actuels, vous pouvez créer un script shell et exécuter à partir du dossier du projet comme ci-dessous
la source
Malheureusement,
git clean
cela ne fonctionne pas pour moi car j'ai*.orig
ajouté à mon fichier global gitignore, ils sont donc également ignorés de clean. Même courirgit clean -x
n'est pas bon car je ne veux pas que tous mes fichiers ignorés soient supprimés.git clean -i
est utile, mais je ne veux vraiment pas avoir à examiner chaque fichier.Cependant, nous pouvons utiliser un modèle d'exclusion et annuler la correspondance. Aperçu avec cette commande:
Ensuite, lorsque vous êtes sûr de vous, passez le
force
drapeau pour vraiment les supprimer:Basé sur le commentaire de Léorleor
la source
git rm Gemfile.lock.orig
et le reste des fichiers dont vous n'avez pas besoin.git commit --amend
Pour supprimer complètement ces blobs,
git gc --prune=0 --aggressive
la source
Pour moi, j'ai
git clean -f
supprimé tous les fichiers * .oig. Et garde ceux qui étaient déjà là avant.Voici à quoi cela ressemblait (presque) après la fusion:
.idea/codeStyles/
était déjà là avant la fusion en tant que fichier non suivi..idea/misc.xml.orig
(et bien plus encore) ont dû être supprimés.=> Utilisation
git clean -f
:abouti à:
la source
tu peux simplement faire
git status -s | grep "\.orig$" | awk '{print $2}' | xargs -n1 -r echo rm
TL, DR;
git status -s
vous permet d'obtenir tous les fichiers modifiés / manquants par rapport à l'indexgrep "\.orig$"
filtrer les fichiers, en conservant la fin par ".orig"awk '{print $2}'
liste le nom du fichier (en ignorant les informations git, par exemple A, M, ??)xargs -n1 -r echo rm
imprime les commandes de suppression sur tous les arguments (-n1: un à la fois et -r: skip lorsqu'il est vide), copiez et collez simplement les commandes en vérifiant les fichiers à supprimer.la source
git rm <file>
http://git-scm.com/docs/git-rm
Ajoutez également les fichiers / répertoires que vous souhaitez ignorer à votre fichier .gitignore.
la source
git rm <file> <file>
Énumérez-les simplement.git rm
, utilisez simplement à larm
place