Autore Topic: Domanda su git  (Letto 274 volte)

Offline tonno16

  • Utente storico
  • *****
  • Post: 1169
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Domanda su git
« il: 24 Giugno 2016, 14:57:48 CEST »
Salve a tutti.

Voglio assolutamente imparare git. Premetto che lo uso con AS (quindi il tutto è integrato) per i miei progetti. Quindi solo io facco push e commit, tanto per allenarmi. Ma prima o poi voglio poter fare e dare gli stessi comandi senza sbagliare da riga di comando.

Mettiamo caso che ho una classe del tipo:
Codice (Java): [Seleziona]
class Punteggio {
    static int point = 5;

Utente A crea il progett e fa il primo commit.
Utente B clona e ci lavora per 8 ore. In serata effettua il suo commit.
Quindi nell' acro di 8 ore utente B ha fatto solo un commit (ore 23:00) e va a domire sereno.
Nel frattempo utente C dalle 12 alle 22:59, ha midificato al classe Punteggio togliendo la variabile point e mettendone delle altre.
Quindi il lavoro fatto in 4 ore da B dove va a finire?

Ancora: utente A e B clonano un progetto di C. Lavorano senza sosta per 1 settimana. Hanno creato 340 classi circa. dDopo 7 giorni al mezzogiorno fanno il commit. Cosa succede?

Come si gestisce?

Offline iClaude

  • Utente normale
  • ***
  • Post: 177
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S5
  • Sistema operativo:
    Windows 10
Re:Domanda su git
« Risposta #1 il: 24 Giugno 2016, 17:05:05 CEST »
Ma ti riferisci a Git + Github?

Offline tonno16

  • Utente storico
  • *****
  • Post: 1169
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Domanda su git
« Risposta #2 il: 24 Giugno 2016, 17:39:49 CEST »
Si scusate

Offline iClaude

  • Utente normale
  • ***
  • Post: 177
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S5
  • Sistema operativo:
    Windows 10
Re:Domanda su git
« Risposta #3 il: 24 Giugno 2016, 18:21:29 CEST »
E' un po' difficile da spiegare, anche perchè dipende da vari fattori.
Cmq semplificando:
- su Github hai il tuo progetto con relativo master branch
- se vuoi fare una modifica, tipicamente in locale crei un branch alternativo su cui fai le modifiche; quindi fai il push del branch alternativo su Github e questo ti apre una pull request che poi può eventualmente essere unita al master branch su Github
- se nel frattempo un altro collaboratore ha modificato il master branch su Github (cioè prima che la tua pull request è stata accettata), può accadere che la modifica generi un conflitto con la tua. Quindi Github ti segnala che la pull request non può essere unita e che devi risolvere il problema da riga di comando. A questo punti scarichi il nuovo master branch di Github (con git fetch o git pull), risolvi il conflitto in locale, fai il merge, quindi pushi di nuovo il branch alternativo su Github. Questo modifica la pull request originaria che a questo punto può essere unita al master branch.

Cmq ti consiglio questo corso, se capisci l'inglese, che tratta proprio questi problemi:
https://www.udacity.com/course/how-to-use-git-and-github--ud775

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Domanda su git
« Risposta #4 il: 27 Giugno 2016, 20:55:43 CEST »
Il software GIT è una cosa diversa e indipendente dal sito Github. È possibile utilizzare GIT senza utilizzare un repository remoto su Github. GIT supporta il repository locale o il server interno (o più server collegati tra loro).

GIT individua e segnala i conflitti nel codice, è compito di chi effettua l'ultimo commit (se può farlo) nel mettere a posto il codice, può accettare le modifiche, creare un branch o ripristinare il vecchio codice.

Il sito ufficiale è presente tutto la documentazione per il suo utilizzo https://git-scm.com/doc

Inviato dal mio Nexus 5 utilizzando Tapatalk

adb logcat | tee /tmp/logcat | grep TAG