2012-07-29 24 views
13

Vorrei un feedback sul mio flusso di lavoro git perché questo è il mio primo utilizzo e, nonostante la lettura di vari articoli e domande di Stack Overflow, non sono sicuro che il mio processo sia corretto. Questo è il mio flusso di lavoro corrente (nota che sto usando Github per l'applicazione Windows per tutte le mie interazioni git):Flusso di lavoro Github per singolo sviluppatore

  1. Decidere quale sarà la prossima caratteristica che implementerò.
  2. Creare un ramo con un nome adeguatamente descrittivo per la funzione. Lo faccio facendo clic sul pulsante di diramazione in Github per Windows e digitando un nuovo nome.
  3. Scrivere un codice.
  4. Confermare quelle modifiche al mio nuovo ramo.
  5. Scrivere un altro codice.
  6. Confermare quelle modifiche al mio nuovo ramo.
  7. Ho finito di implementare la funzione, quindi voglio unire le mie modifiche al ramo principale. Quindi faccio clic sul pulsante "Gestisci" sotto l'intestazione del ramo.
  8. Unire il nuovo ramo nel ramo principale.
  9. Elimina il nuovo ramo.

Sono abbastanza soddisfatto del processo fino al passaggio 7, a quel punto sono un po 'confuso. Penso che la mia confusione risieda nel fatto che sto cercando di utilizzare l'applicazione Github per Windows invece di usare la riga di comando. L'applicazione sembra semplificare le cose ma c'è un po 'di disconnessione nella mia comprensione tra alcuni dei comandi/istruzioni che vedo menzionati e le azioni che dovresti fare nell'applicazione.

Vorrei porre alcune domande specifiche:

  1. È il mio flusso di lavoro in realtà corretta? In caso contrario, cosa c'è di sbagliato e come posso migliorarlo?
  2. Devo "pubblicare" le mie modifiche al nuovo ramo? La mia comprensione è che questo è l'equivalente di fare git push alla riga di comando. È vero? Se è così, penso che vorrei solo farlo quando avrò finito di implementare la funzione o se è in uno stato decente?
  3. Devo eliminare il ramo quando l'ho fuso nel ramo principale o dovrebbe essere lasciato per sempre?
  4. Devo pubblicare il ramo principale quando ho completato l'unione o è implicito?
  5. io sono a volte in grado di eseguire la stampa e ottenere questo messaggio di errore:

    Impossibile unire

    Impossibile unire i 'test' in 'master'. Potrebbe essere necessario aprire una shell e eseguire il debug dello stato di questo repository.

Quando questo è avvenuto prima, ero in grado di cambiare al ramo master e unire il nuovo ramo in ramo principale, tuttavia, che non funziona più. Non importa in quale ramo mi trovi, non posso unire i due rami. Entrambi sono sincronizzati e ho pubblicato tutte le modifiche dal mio ramo test. Cosa dovrei digitare nella shell per scoprire perché non riesco a unire i rami?

Per riferimento, questi sono i principali collegamenti che hanno spinto il mio processo:

  1. Scott Chacon on the workflow at Gitub
  2. Git workflow for a single developer on a local repository
  3. Git workflow for a single user

risposta

4

Quello che stai descrivendo suona come un flusso di lavoro ramificazione comune che funziona molto bene anche per più sviluppatori sullo stesso codice base. È praticamente completamente coperto da git flow che è un'estensione della riga di comando git per automatizzare determinati passaggi. Vale la pena dare un'occhiata.

Non sono un grande fan degli strumenti dell'interfaccia utente per git. Sto usando la riga di comando la maggior parte del tempo. Quindi non ho esperienza con GitHub per Windows. Ma scommetto che i tuoi problemi si verificano perché le tue fusioni non sono più veloci. Ciò richiederebbe un passaggio di unione manuale che è (afaik) non coperto dallo strumento.

Non vi è alcun motivo valido per mantenere i rami in giro dopo averli uniti nell'upstream. Ma uno è quello di monitorare ciò che è entrato in una determinata caratteristica. Suggerirei di pubblicare i rami se decidi di tenerli. Non sei dipendente dal codice che giace sulla tua macchina locale. Mantenere i rami non rende il repository molto più grande ma inquina la vista. La maggior parte delle volte i commit sono comunque presenti nel tuo ramo upstream.

Dovrete pubblicare (push) il tuo branch master dopo la fusione in.

per acquisire familiarità con lo strumento da riga di comando git Suggerisco a partire con l'Introduction to Git and GitHub dai ragazzi GitHub e seguire i loro riferimenti link per maggiori informazioni .

Speranza che aiuti

+0

Grazie - è bello sapere che sono sulla strada giusta! Sono ancora un po 'confuso dai rami però e penso che sia da lì che proviene il mio mal di testa. Quando creo un nuovo ramo in Github per Windows, dovrei aspettarmi che creerebbe una nuova directory da qualche parte? Perché se così non fosse non sto semplicemente modificando il codice che si trova nel mio ramo principale? – Stu

+0

Git memorizza tutto in un gruppo di delta nella cartella .git. Quindi quando crei un nuovo ramo, è come se stessi lavorando a una copia del tuo ramo master/clonato. Ma è tutto nella stessa cartella (commettere alcune modifiche e capovolgere i rami e riaprire il file per vedere). Tieni d'occhio il ramo che hai controllato, perché può essere facile iniziare a scrivere un sacco di cose, dimenticando che non hai cambiato ramo e finisci col commettere il master invece del tuo ramo delle funzionalità. È qui che i cestini sono molto utili. – yellottyellott

+0

Ci scusiamo per non aver accettato prima la risposta alla mia domanda, alcuni come mi sembra che abbia perso il tuo ultimo commento che ha risposto a tutte le mie domande. Grazie mille! – Stu

Problemi correlati