Usare git correttamente in una piccola squadra


14

Quale sarebbe il modo più semplice per usare git correttamente in un piccolo team di circa 5 sviluppatori, con un server che esegue l'applicazione live?


5
Vorrei mettere in dubbio l'utilizzo di git in questo caso. Non vi è alcun vantaggio nell'utilizzare il controllo del codice sorgente decentralizzato, quando tutte le persone sono in una stanza con un server dedicato. E c'è ancora il sovraccarico di tirare / spingere in cima ai commit.
— Euforico,

10
@Euphoric dipende dagli strumenti e dal flusso di lavoro.

3
@ONOZ, descrivi il tuo attuale modo di lavorare in modo più dettagliato.

22
@Euforico - Che atteggiamento incredibilmente ristretto. Per la facilità di diramazione e fusione da solo gito hgbatte la maggior parte dei VCS centralizzati. Riesco a capire che le persone si arrabbiano con le persone che si arrovellano costantemente su quanto siano grandi i DVCS, ma seppellire la testa nella sabbia e rifiutarsi di riconoscere che è possibile sviluppare flussi di lavoro diversi e forse più efficienti con DVCS che senza uno è altrettanto male.
— Mark Booth,

8
@Euforico, usare Git non significa che il tuo controllo del codice sorgente sia "decentralizzato". Lavoro in un piccolo team, usiamo Git e abbiamo ancora un repository centrale. Questo è ciò a cui spingi. L'uso di un DVCS di solito non significa che ogni persona stia tirando da ogni altra persona senza un punto centrale.
— Kyralessa,

Risposte:


11

Ti suggerisco di creare un ramo:

  • produzione
  • maestro
  • Locale

Il ramo di produzione è ramo "vivo". È l'applicazione in uso in questo momento.

Quando è necessario un aggiornamento, uno sviluppatore può inserire il ramo principale nel ramo locale. Quindi, può iniziare a programmare. Alla fine, basta tirare e spingere dal ramo locale dello sviluppatore al master. Un project manager può dare un'occhiata nel ramo principale. Provalo. E quando è pronto, puoi unire la produzione al master. E ora avrai un nuovo software.


Se ti trovi in ​​una situazione di consulenza o aziendale, potresti anche voler avere una filiale per UAT.
— John MacIntyre,

D'accordo, sto usando questo flusso di lavoro.
— Cheung,

Potresti approfondire il motivo per cui la differenza tra un ramo locale e un master? Posso capire perché vorresti avere una versione di produzione funzionante, ma quando tiri / spingi le modifiche si uniranno automaticamente anche senza una filiale locale, giusto?
— Luc,

1
A causa del ramo locale può essere nominato come XXX-feature-name, quindi, hai ramo master come unione di tutto il ramo di funzionalità che desideri in produzione. Sì: perché alcune funzionalità potrebbero non essere incluse.
— sensorario,

7

Inizia in modo semplice e crea un flusso di lavoro più complesso come e quando è necessario.

Qualunque cosa tu faccia, non lasciare che un modello di ramificazione Git di successo sia la prima cosa che la gente vede, li confonderà e li travolgerà. Guarda più avanti quando hai più esperienza.

Ti suggerirei di iniziare con un gitrepository centrale e di far clonare tutti, compresi i tuoi build di produzione e test.

Nel tuo repository git, crea un productionramo e un testramo.

Gli sviluppatori dovrebbero lavorare nei propri rami di funzionalità locali o remoti fino a quando non vengono completati e uniti master. Da qui possono essere uniti nel testramo per la distribuzione nell'ambiente di test e quando superano i test possono essere uniti nel productionramo.

In questo modo puoi sempre vedere ciò che è nuovo e non testato, ciò che è testato ma non ancora implementato nella produzione e ciò che è effettivamente in produzione.


Opinione interessante, considererei il modello di ramificazione git come un rompiscatole per git, d'altra parte potrebbe non essere così ovvio per gli utenti non git.
— Wirrbel,

@wirrbel Non esistono cose come il modello di ramificazione git, è possibile implementare qualsiasi modello di ramificazione desiderato gitper adattarsi al proprio flusso di lavoro. Quello che propongo qui è semplice ed è probabile che sia migliore per i meno esperti gitutenti di un modello di ramificazione Git successo ma AsGbm è probabile che sia migliore per i più esperti gitutenti, ma non è così adatto per alcune squadre (persone che vogliono mantenere più rilascio rami per esempio). Come ho detto però, il problema con AsGbm è che può sembrare eccessivamente complicato.
— Mark Booth,

Vedo il tuo punto. Solo per me, ho iniziato con AsGbm (o piuttosto adattato alle mie esigenze). È stato perfetto dal momento che ho potuto vedere come git potrebbe essere usato in modo diverso rispetto a svn
— wirrbel,


0

È necessario disporre di un repository principale sul server di integrazione e ogni sviluppatore deve clonarlo. Dopo di ciò basta tirare e spingere. Sviluppa nuove grandi funzionalità in un ramo separato. Nessuna scienza missilistica qui. Sul server live: è inoltre necessario clonare il repository principale. Ed è buona pratica avere un ramo come "live" per questo.


2
git archive è un'altra opzione per la distribuzione sul server live supponendo che in realtà non si desideri modificare direttamente le cose sul server live
— jk.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.