[git] Comando per clonare il repo delle guide tematiche

  • Creatore
    Topic
  • #84490
    robitex
    Amministratore del forum
      Up
      0
      Down
      ::


      Scusate,
      sto scrivendo un programma che esegue il download dei sorgenti delle guide tematiche in locale, compila il tutto e fa l’upload dei documenti pdf sul sito del GuIT.
      Lo scopo è quello di automatizzare la procedura per sincronizzare le guide tematiche distribuite sul sito all’ultima versione presente nel repo.
      Ho notato che il comando da console $ git clone può essere eseguito soltanto se nella directory di lavoro il repo non esiste già.
      Quindi per tenere aggiornati i file in locale devo cancellare queste cartelle prima di clonare il repo.

      Qual è invece il comando git per aggiornare i repo in locale, sincronizzandoli con github?

      Eventualmente, esiste la possibilità di scaricare solo l’ultimo commit?

      Grazie.
      R.

    Visualizzazione 6 filoni di risposte
    • Autore
      Risposte
      • #84491
        Up
        0
        Down
        ::

        robitex” post=83883Qual è invece il comando git per aggiornare i repo in locale, sincronizzandoli con github?

        Solo per scaricare i dati [tt]git fetch[/tt], per scaricare ed effettuare il merge nel ramo attuale (che molto probabilmente è l’operazione che interessa a te): [tt]git pull[/tt]. Il manuale delle azioni è come al solito: [tt]man git-[/tt].

        robitex” post=83883Eventualmente, esiste la possibilità di scaricare solo l’ultimo commit?

        Non so se esista qualcosa di più immediato, sicuramente puoi fare un [tt]git fetch[/tt] e poi fare il cherry-picking del commit che ti interessa (puoi vedere il log del ramo [tt]master[/tt] remoto con [tt]git log origin/master[/tt], aggiungi l’opzione [tt]-1[/tt] per vedere solo l’ultimo commit). Però non ho capito perché dovrebbe servirti solo l’ultimo commit, se il tuo scopo è tenere aggiornato il repo locale [tt]git pull[/tt] è esattamente quello che ti serve.

      • #84492
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::


          Grazie Elrond,
          avevo provato git pull ma ho ottenuto un errore che solo dopo ho capito essere nella stringa che definiva l’url del repo.
          Un bug di programmazione che mi aveva indotto a pensare che git pull non funzionava.
          Grazie ancora.
          R.

        • #84493
          robitex
          Amministratore del forum
            Up
            0
            Down
            ::


            Elrond,
            tu riesci a fare un git pull dalla directory immediatamente superiore a quella che contiene il progetto?

            Per esempio, se faccio:
            `mydir$ cd guidaemacsauctex
            mydir/guidaemacsauctex$ git pull`
            tutto ok,
            ma se tento:
            `mydir$ git –work-tree=./guidaemacsauctex –git-dir=./guidaemacsauctex/.git pull`
            mi da errore (fatal: /usr/lib/git-core/git-pull cannot be used without a working tree.)

            Comunque ho risolto lo stesso, era solo per chiarire.
            Basta eseguire anche da programma:
            `mydir $ cd guidaemacsauctex
            mydir/guidaemacsauctex $ git pull
            mydir/guidaemacsauctex $ cd –
            mydir $`
            Grazie.
            R.

          • #84494
            Up
            0
            Down
            ::

            robitex” post=83900Elrond,
            tu riesci a fare un git pull dalla directory immediatamente superiore a quella che contiene il progetto?

            Per esempio, se faccio:
            `mydir$ cd guidaemacsauctex
            mydir/guidaemacsauctex$ git pull`
            tutto ok,
            ma se tento:
            `mydir$ git –work-tree=./guidaemacsauctex –git-dir=./guidaemacsauctex/.git pull`
            mi da errore (fatal: /usr/lib/git-core/git-pull cannot be used without a working tree.)

            Comunque ho risolto lo stesso, era solo per chiarire.
            Basta eseguire anche da programma:
            `mydir $ cd guidaemacsauctex
            mydir/guidaemacsauctex $ git pull
            mydir/guidaemacsauctex $ cd –
            mydir $`
            Grazie.
            R.

            Sinceramente non conoscevo neanche questa possibilità, per quanto riguarda il problema, vedi: http://stackoverflow.com/q/9745941 Pare sia un bug, ora risolto

          • #84495
            robitex
            Amministratore del forum
              Up
              0
              Down
              ::


              Grazie Elrond,
              effettivamente la mia versione è precedente alla 1.7.7.2, dalla quale il bug è stato risolto:
              `$ git version
              git version 1.7.0.4
              $
              `

              Ho clonato i repo in locale di tutte e cinque le guide tematiche attualmente ospitate su github.com/GuITeX, in una cartella.
              In essa ho inserito l’eseguibile per effettuare i pull e quindi mi serviva un comando in cui git lavora dall’esterno delle directory dei progetti.
              Ho pensato di evitare l’uso di librerie scritte in C, API, per git, ma semplicemente avviare l’esecuzione di comandi esterni.
              Finché non cambierò pc, non credo di poter passare a versioni aggiornate di distro Linux.
              R.

            • #84496
              Up
              0
              Down
              ::

              robitex” post=83909Ho pensato di evitare l’uso di librerie scritte in C, API, per git, ma semplicemente avviare l’esecuzione di comandi esterni.

              Se devi fare solo queste operazioni, uno script shell mi sembra la soluzione più semplice e immediata da realizzare 😉

            • #84497
              robitex
              Amministratore del forum
                Up
                0
                Down
                ::


                [attachment=658]-.png[/attachment]

                😉

                Attachments:
                You must be logged in to view attached files.
            Visualizzazione 6 filoni di risposte
            • Devi essere connesso per rispondere a questo topic.

            Go to top