IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GIT Discussion :

Fichier non comité supprimé après un git merge --abort


Sujet :

GIT

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2021
    Messages : 7
    Par défaut Fichier non comité supprimé après un git merge --abort
    Bonjour à tous,

    En voulant comiter un dossier, j'ai fait une bêtise je crois (je suis débutante++ en git, soyez indulgents lol).
    Je partage le repository avec mon encadrant, et j'avoue ne pas mettre à jour assez souvent le repo. Je ne l'utilise pas beaucoup, car je préfére l'éviter ^^'.
    Or, je devais comiter un dossier contenant un fichier .tex. J'ai fait les manip suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    :~/Repo$ git pull
    error: Impossible de tirer car vous avez des fichiers non fusionnés.
    astuce: Corrigez-les puis lancez 'git add/rm <fichier>'
    astuce: si nécessaire pour marquer la résolution et valider.
    fatal: Abandon à cause de conflit non résolu.
    :~/Repo$ git add NewFile/
    :~/Repo$ git commit -m "new file"
    U	acc/algo.tla
    error: Impossible de valider car vous avez des fichiers non fusionnés.
    astuce: Corrigez-les puis lancez 'git add/rm <fichier>'
    astuce: si nécessaire pour marquer la résolution et valider.
    fatal: Abandon à cause de conflit non résolu.
    :~/Repo$ git push
    To git.site.com:cortez/Repo.git
     ! [rejected]        master -> master (non-fast-forward)
    error: impossible de pousser des références vers 'git@git.site.com:cortez/Repo.git'
    astuce: Les mises à jour ont été rejetées car la pointe de la branche courante est derrière
    astuce: son homologue distant. Intégrez les changements distants (par exemple 'git pull ...')
    astuce: avant de pousser à nouveau.
    astuce: Voir la 'Note à propos des avances rapides' dans 'git push --help' pour plus d'information.
    :~/Repo$ git pull
    error: Impossible de tirer car vous avez des fichiers non fusionnés.
    astuce: Corrigez-les puis lancez 'git add/rm <fichier>'
    astuce: si nécessaire pour marquer la résolution et valider.
    fatal: Abandon à cause de conflit non résolu.
    :~/Repo$ git merge 
    error: Impossible de fusionner car vous avez des fichiers non fusionnés.
    astuce: Corrigez-les puis lancez 'git add/rm <fichier>'
    astuce: si nécessaire pour marquer la résolution et valider.
    fatal: Abandon à cause de conflit non résolu.
    :~/Repo$ git merge --abort
    :~/Repo$ git pull
    remote: Enumerating objects: 4, done.
    remote: Counting objects: 100% (4/4), done.
    remote: Compressing objects: 100% (4/4), done.
    remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
    Dépaquetage des objets: 100% (4/4), 10.98 Kio | 5.49 Mio/s, fait.
    Depuis git.site.com:cortez/Repo
       9207a62..aa8d397  francois   -> origin/francois
    Fusion automatique de acc/algo.tla
    CONFLIT (contenu) : Conflit de fusion dans acc/algo.tla
    La fusion automatique a échoué ; réglez les conflits et validez le résultat.
    :~/Repo$ git add NewFile/
    :~/Repo$ git commit _m "ajout new file"
    fatal: impossible de faire une validation partielle pendant une fusion.
    :~/Repo$ git pull
    error: Impossible de tirer car vous avez des fichiers non fusionnés.
    astuce: Corrigez-les puis lancez 'git add/rm <fichier>'
    astuce: si nécessaire pour marquer la résolution et valider.
    fatal: Abandon à cause de conflit non résolu.
    :~/Repo$ git merge --abort
    :~/Repo$ git pull
    Fusion automatique de acc/algo.tla
    CONFLIT (contenu) : Conflit de fusion dans acc/algo.tla
    La fusion automatique a échoué ; réglez les conflits et validez le résultat.
    À la suite de toutes mes bêtises, je me suis rendu compte que mon fichier tex avait été supprimé (à cause du merge --abort peut être, mais le dossier "NewFile" existe toujours). Y a-t-il un moyen pour récupérer le fichier supprimé?
    Merci infiniment pour votre aide
    Sauvez moi please!!! ^^'

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par défaut
    Bonjour et bienvenue,

    Tu as eu la sagesse de ne pas utiliser de commande de « forçage », comme l'option « -f » ou certaines commandes dangereuses, avant de savoir comment s'en servir, ce qui est une très bonne chose. Logiquement, si les commandes que tu as lancées sont toutes consignées dans l'extrait que tu nous présentes, alors Git ne devrait pas avoir touché à ton fichier. En revanche, tu l'as peut-être effacé toi-même par ailleurs, depuis une source que tu ne nous montres pas. Il est également possible que tu l'aies déplacé et/ou renommé.

    Quels étaient le chemin et le nom exact du fichier que tu as perdu ?

    Retiens simplement que git pull est l'équivalent de git fetch sur ta branche, suivi de git merge. Ici, l'opération échoue car vous avez tous les deux modifié un ou plusieurs fichiers du dépôt, chacun de votre côté (ou alors l'histoire a été ré-écrite avec un push -f depuis la dernière fois que tu as lu le dépôt mais c'est peu probable). Donc évidemment, il faut indiquer à Git quelles modifications choisir.


    Je partage le repository avec mon encadrant, et j'avoue ne pas mettre à jour assez souvent le repo. Je ne l'utilise pas beaucoup, car je préfére l'éviter ^^'.
    Le mieux, lorsque tu contribues occasionnellement à une branche qui — elle — est active, est de créer ta propre branche locale et de développer dessus, puis de la fusionner toi-même avec la branche concernée lorsque tu es prête. Ainsi, tu n'as aura jamais de difficulté à faire un git pull et tu sera sûre que git push enverra vers le serveur quelque chose qui sera proprement fusionné.

  3. #3
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2021
    Messages : 7
    Par défaut
    Bonjour,

    Merci pour ta réponse
    Je ne sais pas trop ce qui s'est passé, mais j'ai pu récupérer le fichier pdf du .tex en utilisant Foremost.
    En effet, nous avions tous les deux modifié un fichier du dépôt. Je vais faire comme tu le suggères en créant une branche locale puis la fusionner, c'est plus safe je crois x)
    Je dois absolument m’entraîner à manipuler Git avec des tuto ^^'

    Merci encore et bonne journée

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par défaut
    Merci pour ton retour.

    Je m'aperçois que j'ai oublié de te conseiller d'utiliser git status, qu'on appelle en général systématiquement avant de préparer ses commits. Ça permet de voir en un coup d'œil ce qui est déjà suivi, ce qui ne l'est pas, ce qui a été modifié parmi les fichiers déjà suivis et les modifications que l'on a déjà marquées pour enregistrement dans le prochain commit.

    Si tu avais déplacé ton fichier par erreur ou si tu l'avais supprimé alors qu'il était déjà suivi jusqu'ici, tu aurais pu le savoir facilement.

    À bientôt.

  5. #5
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2021
    Messages : 7
    Par défaut
    Très bien, je note tout ça, merci beaucoup

    a bientôt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. rendre un fichier non modifiable/supprimable
    Par Ogryien dans le forum Développement Sharepoint
    Réponses: 3
    Dernier message: 11/03/2013, 12h25
  2. Fichier non mis à jour après push
    Par Général03 dans le forum GIT
    Réponses: 6
    Dernier message: 23/01/2012, 08h30
  3. Réponses: 4
    Dernier message: 19/07/2006, 12h29
  4. supprimer fichiers non modifiés depuis X jours
    Par tyrax dans le forum Langage
    Réponses: 2
    Dernier message: 17/05/2006, 18h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo