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 :

Avoir la liste des fichiers modifié


Sujet :

GIT

  1. #1
    Membre habitué
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2007
    Messages : 344
    Points : 127
    Points
    127
    Par défaut Avoir la liste des fichiers modifié
    Bonjour,

    Je commence à utiliser GIT pour mes développement web, je travaille sous NetBeans qui contient un client GIT.

    Ce que j'aimerais faire, c'est:

    - Je crée un dossier avec mes source dedans
    - Je fais un dépot avec ces sources
    - Je travaille dessus en faisant plusieurs commit
    - Une fois l'application stable, j'aimerais en faire une "release" prête à être mettre en ligne par ftp.
    - Une fois la release faite puis en ligne, je continue à travailler sur mes source pour améliorer l'app
    - Je refait mes commits, plusieurs
    - Une fois denouveau stable, j'aimerais refaire une release, qui me créer un dossier avec seulement les fichiers/dossiers modifié, ajouté depuis ma dernière release, ainsi j'ai plus qu'a glisser ce dossier sur le ftp.

    - Est-ce possible de travailler comme ça avec GIT? Est-ce une bonne méthode?

    - Pensez-vous que l'on améliorer ce processus?

    Et si tout est ok, une aide de comment faire avec GIT pour créer des "releases"?

    Merci d'avance

  2. #2
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mars 2010
    Messages : 74
    Points : 81
    Points
    81
    Par défaut
    Salut,

    Tu remarqueras que dans cette section les coups de mains manquent cruellement, c'est pourquoi bien que débutant je te fais tout de même pars de mon avis. Mes termes utilisés ne seront peut être pas les meilleurs...

    - Je crée un dossier avec mes source dedans
    - Je fais un dépot avec ces sources
    Possible, c'est la base de git:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    mkdir dossierAvecMesSources
    cd dossier
    cp /URL_DE_TES_SOURCES/* .
    git init
    git add .
    git commit -m "First commit"
    - Je travaille dessus en faisant plusieurs commit
    Aussi.
    - Une fois l'application stable, j'aimerais en faire une "release" prête à être mise en ligne par ftp.
    Ta release est dans ton repertoire de travail "dossierAvecMesSources".
    Tu l'as créée en modifiant tes sources. Git lui t'as aidé à sauvegarder les etapes de l'avancement de tes modifs dans le dépôt.
    Une fois la release faite puis en ligne, je continue à travailler sur mes source pour améliorer l'app
    - Je refait mes commits, plusieurs
    Ta release et tes sources, sont la même chose. Elles sont dans "dossierAvecMesSources".
    Tu peux continuer à travailler sur ta release puisque elle est sauvegardée dans l'historique de ton dépôt.
    - Une fois denouveau stable, j'aimerais refaire une release, qui me créer un dossier avec seulement les fichiers/dossiers modifié, ajouté depuis ma dernière release, ainsi j'ai plus qu'a glisser ce dossier sur le ftp.
    Le but de Git c'est de t'éviter de créer 1 dossier pour chaque modif que tu fais.
    Mais tu peux quand même le faire, c'est à toi de voir.
    Pour y mettre seulement les fichiers qui ont été ajouté/modifié, je pense qu'il va te falloir le faire à la main, car Git n'est pas fait pour ça.
    Tu peux faire un diff entre ta release précedente et actuelle, te péter les yeux pour voir quels fichiers ont été ajouté modifiés, les copier un a un depuis ton dossier de travail, et les coller dans ton nouveau dossier "Release". Bon courage !
    Autant faire une copie totale de ton dossier sans le dépôt git.
    Tu enverras ainsi la totalité de ton site sur le ftp. Long à upload. Mais faut choisir, soit c'est long et tu te crames les yeux, soit c'est long pendant que tu pionces dans la pièce d'à côté.
    Est-ce possible de travailler comme ça avec GIT?
    Oui. Dans le sens où tu travailles avec Git seulement pour faire des éditions et des sauvegardes d'historique.
    Est-ce une bonne méthode?
    Non !
    - Pensez-vous que l'on améliorer ce processus?
    Oui !
    Si tu avais git installé sur ton serveur tu ne te servirais plus de ton ftp.
    Et la commande suivante suffirait à mettre à jour ton site :
    Donc en gros
    - Soit tu continues à faire "à l'ancienne" en copiant/remplaçant tout ton site. S'il arrive une couille t'as l'historique de ton dépot en local qui te permet de sauver les meubles. Et la longueur de l'attente ne dépend que du volume que tu comptes héberger.
    - Soit tu décides de prendre le temps d'installer git sur ton serveur (dépôt serveur), et avoir la vie facile après.
    Les deux solutions peuvent se valoir, ça dépend de tes besoins.

    EDIT :
    En fait si tu reviens à ton ancienne release dans l'index, et que tu fais un git status, tu auras la liste, juste la liste des fichiers modifiés.
    git diff c'est pour voir plus en details les modifications qui ont été faites entre les anciens fichiers et les nouveaux.
    Selon le nombre de fichiers modifiés, ne selectionner que les modifiés peut devenir l'enfer.

  3. #3
    Membre expérimenté Avatar de alexrtz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 639
    Points : 1 359
    Points
    1 359
    Par défaut
    Citation Envoyé par nesswaw Voir le message
    comment faire avec GIT pour créer des "releases"?
    Ce n'est pas le but de git
    Git sert à gérer les différentes versions de tes sources, pas à faire du build ou du déploiement.

    Quand tu parles de "faire une release", il y a en fait deux choses :
    - dire à git "je veux ici un point de sauvegarde facilement identifiable pour dire que le code source correspond à une release" => ça se fait avec les tags (exemple plus bas)
    - produire un livrable (un ensemble de binaires, de fichiers de config, ...) que tu vas distribuer sur un serveur FTP => ce n'est pas le rôle de git de s'occuper de ça (on est ici dans du build et du déploiement et non dans de la gestion de version)

    Ton deuxième problème peut se résoudre très facilement soit avec un outil de synchro FTP soit avec un script de copie.
    Pour le script, il faut :
    - récupérer les fichiers modifiés entre tes deux releases => git diff --name-only v2.0 v1.0
    - les copier avec un bête ftp

    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
    $ mkdir projet
    $ cd projet/
    $ git init
    Initialized empty Git repository in /a_path/projet/.git/
    $ echo a > a.txt
    $ g a a.txt
    $ cd ..
    $ rm -rf projet/
    $ mkdir projet
    $ git init
    Initialized empty Git repository in /a_path/.git/
    $ echo a > file.txt
    $ git add file.txt
    $ g commit -am "Initial import"
    [master (root-commit) 978bda9] Initial import
     1 files changed, 1 insertions(+), 0 deletions(-)
     create mode 100644 file.txt
    $ echo b >> file.txt
    $ git diff
    diff --git a/file.txt b/file.txt
    index 7898192..422c2b7 100644
    --- a/file.txt
    +++ b/file.txt
    @@ -1 +1,2 @@
     a
    +b
    $ git commit -am "A useful commit message"
    [master 12922af] A useful commit message
     1 files changed, 1 insertions(+), 0 deletions(-)
    $ git tag v1.0
    $ git tag 
    v1.0
    $ echo c >> file.txt 
    $ git commit -am "Another useful commit message"
    [master b826a58] Another useful commit message
     1 files changed, 1 insertions(+), 0 deletions(-)
    $ echo d >> file.txt 
    $ git commit -am "An extremely useful commit message"
    [master 27f6224] An extremely useful commit message
     1 files changed, 1 insertions(+), 0 deletions(-)
    $ git tag v2.0
    $ git diff v2.0 v1.0
    diff --git a/file.txt b/file.txt
    index d68dd40..422c2b7 100644
    --- a/file.txt
    +++ b/file.txt
    @@ -1,4 +1,2 @@
     a
     b
    -c
    -d
    $ git diff --name-only v2.0 v1.0
    file.txt
    Pour revenir à la v1.0 :
    Si tu veux créer une archive de tes fichiers, regarde du côté de "git archive".
    "Je suis incapable d'expliquer ce qui se passa ensuite : je lâchai quelque chose, quelque chose à quoi je m'agrippais depuis toujours sans m'en rendre compte. Je m'enfonçais dans une obscurité chaude, moelleuse et protectrice, tandis qu'un loup montait la garde par mes propres yeux."

Discussions similaires

  1. [Perforce] Savoir la liste des fichiers modifiés non commités
    Par bruce-willis dans le forum SCM
    Réponses: 1
    Dernier message: 12/08/2011, 14h36
  2. [TortoiseCVS] Listing des fichiers modifiés entre deux balises
    Par lead8209 dans le forum CVS
    Réponses: 0
    Dernier message: 01/06/2011, 14h51
  3. Réponses: 3
    Dernier message: 09/01/2004, 14h37
  4. liste des fichiers d'un répertoire
    Par am dans le forum C
    Réponses: 3
    Dernier message: 04/08/2003, 17h03
  5. [Kylix] Liste des fichiers d'un répertoire
    Par Houben Jacques dans le forum EDI
    Réponses: 3
    Dernier message: 30/11/2002, 21h14

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