In uno dei miei progetti universitari sono in un gruppo di 4 sviluppatori incaricato di sviluppare un'applicazione web da zero. Abbiamo tutti una conoscenza di base di Git e abbiamo deciso di utilizzarlo per la collaborazione basata su codice, abbiamo creato un repository e tutti collaborano su GitHub.Utilizzo di Git per la collaborazione su un progetto a 4 persone
Negli ultimi due mesi abbiamo semplicemente clonato e effettuato il commit dal/al master, e questo ha funzionato bene. Ultimamente però, ci sono stati momenti in cui due o più persone lavorano contemporaneamente alla base di codice e spesso finiamo con alcune persone che sono in ritardo sul commit e che devono clonare il pronti contro termine prima di impegnarsi, il che a volte finisce con il cambiare perduto.
Oggi, uno dei membri del gruppo ha parlato di avere un ramo "di sviluppo", che tutti noi cloniamo e ci impegniamo, e quindi ci uniamo al ramo master alla fine di ogni sprint. L'abbiamo provato, ma in realtà non abbiamo visto alcun miglioramento visto che stiamo ancora lavorando tutti dalla stessa base di codice, quindi si verifica lo stesso problema di prima.
Qualcun altro ha avuto l'idea di biforcarsi (questo è qualcosa di nuovo per me) il repository principale, lavorando su di esso e poi inviando richieste di pull al repository principale, che può quindi essere unito. Questo in pratica suona come un buon piano, perché le modifiche possono essere riviste e risolte se si rompe il codice. È così che lo capisco, comunque.
Ma come ho detto, siamo tutti abbastanza nuovi a Git e abbiamo una conoscenza molto basilare dell'intera idea. Qual è il modo standard di organizzare un team di 4 sviluppatori che lavorano su un repository Git? Ho dato un'occhiata alla documentazione di Git, ma è tutto piuttosto confuso per qualcuno che sa davvero solo come clonare e impegnarsi in un ramo master.
Grazie per qualsiasi aiuto!
Scrivi "clona il repository prima di eseguire il commit, che a volte finisce con il perdere le modifiche". Come mai eventuali cambiamenti possono essere persi? Sei sicuro di aver modificato le modifiche dal ramo principale? Se lo fai, non perderai i dati. Le modifiche parallele sugli stessi file verrebbero unite automaticamente da git. In alternativa si otterrebbe un conflitto. – harpun
Mi rendo conto di quanto sia sciocco il mio modo di pensare adesso, ma ho capito che quando due persone lavorano sullo stesso file, e entrambe le persone si impegnano, quello che ha commesso per ultimo sovrascrive i cambiamenti della persona che sta commettendo davanti a loro. Penso che abbiamo comunque avuto degli errori di conflitto che ci hanno spinto al limite. –
Prova http://try.github.com/levels/1/challenges/1 e http://atlassian.com/git/tutorial/git-basics per un buon tutorial git. L'utilizzo del [flusso di lavoro centralizzato] (http://atlassian.com/git/workflows#!workflow-centralized) dovrebbe essere sufficiente per l'inizio. Non c'è bisogno di complicare eccessivamente le cose :) – harpun