Progetti Java open source: GitHub

Se sei stato curioso di GitHub, questo breve tutorial nella serie di progetti Java open source è per te. Ottieni una panoramica del repository del codice sorgente che ha cambiato il modo in cui molti sviluppatori lavorano, sia individualmente che in collaborazione. Quindi prova GitHub per te stesso, usando i comandi Git comuni per ramificare e impegnare il tuo progetto open source.

GitHub è un sito Web di codifica sociale e un servizio di hosting del codice sorgente che utilizza Git come sistema di controllo della versione. Lanciato nel 2008, GitHub vanta già quasi 1,7 milioni di persone che ospitano quasi 3 milioni di repository. Come la maggior parte dei social network, GitHub consente agli utenti di creare e seguire feed associati ai rispettivi progetti. Inoltre estende il paradigma sociale per includere grafici di rete che mostrano l'utilizzo del repository. Puoi pensare a GitHub come a un social network, come Facebook, ma solo per sviluppatori di software.

Riunendo elementi sociali con un repository gratuito per ospitare progetti open source, GitHub mira a coltivare una comunità attiva e di supporto per il miglioramento dell'industria del software. Più un progetto è attivo, più persone lo troveranno e, si spera, contribuiranno ad esso. GitHub offre anche supporto per progetti commerciali a un costo nominale.

Oltre a seguire i progetti, GitHub consente agli utenti di seguire i singoli sviluppatori di software. In questo modo è facile tenere il passo con ciò che stanno facendo amici e colleghi e rivedere il loro codice, nonché cercare programmatori noti e seguire il loro lavoro. Un feed aggiornato regolarmente offre l'opportunità di guardare qualcuno che pratica il proprio mestiere. Per gli sviluppatori, c'è molto da imparare dallo studio reciproco del codice e della metodologia; per esempio, essere in grado di vedere quale codice gli altri sviluppatori inseriscono nei loro progetti, e quando, è un ottimo modo per imparare ad alto livello sul ciclo di sviluppo del rilascio.

Segui la storia su JavaWorld

  • Perché gli sviluppatori scelgono Git per il controllo della versione
  • Poiché il fork diventa la norma, preparati per GitHub
  • GitHub ottiene un investimento di $ 100 milioni

La codifica sociale con GitHub consente agli sviluppatori di imparare gli uni dagli altri in un modo nuovo mentre memorizzano e aggiornano il codice utilizzando un sistema di controllo delle versioni popolare e ben dotato. In questa edizione dei progetti Java open source ti aiuterò a iniziare con GitHub. Per prima cosa fornirò una panoramica della piattaforma, quindi introdurrò alcune nozioni di base su Git, incluse le opzioni della riga di comando che userete frequentemente in GitHub. Infine, diffillustrerò un semplice commitesempio che dimostra la potenza quotidiana di questo repository di codice distribuito.

Inizia con GitHub

Gli account GitHub sono disponibili in diversi gusti, raggruppati per account individuale o commerciale e per repository pubblico o privato. Agli sviluppatori open source è consentito un numero illimitato di repository pubblici o, per una piccola quota, possono scegliere di ospitare da cinque a 20 repository privati. Gli sviluppatori commerciali pagano di più (circa il doppio degli sviluppatori open source al momento della stesura di questo documento) e possono scalare fino a 125 repository privati. Consulta la home page di GitHub per un elenco completo di piani e prezzi.

Avrai bisogno di un account GitHub per seguire questo articolo. Vai al sito Web di GitHub e fai clic sul collegamento Registrazione e prezzi nella parte superiore della pagina. Fai clic su "Crea un account gratuito" e completa il processo di creazione dell'account.

Se desideri le istruzioni di configurazione per il tuo sistema operativo, consulta il tutorial di GitHub. Tieni presente che il processo di installazione installa automaticamente un client GUI e ti richiede di installare manualmente gli strumenti della riga di comando di GitHub. Ti consiglio di prendere questa opzione nel caso in cui tu voglia fare qualcosa rapidamente sulla riga di comando.

Git: un primer

Dovrai avere almeno una certa familiarità con Git per utilizzare efficacemente GitHub. Un punto di interesse per la maggior parte dei fanatici è che Git è stato progettato e sviluppato da Linus Torvalds, il fondatore di Linux. In questa sezione fornisco una panoramica di Git e descrivo come funziona. Verso la fine dell'articolo presento una rassegna di alcuni dei comandi più popolari per aiutarti a diventare produttivo rapidamente. Questo non è affatto un tutorial esaustivo, ma dovrebbe aiutarti a iniziare.

Quando gli sviluppatori di software pensano a un sistema di controllo della versione (VCS), tendiamo a pensare a un repository centrale che useremo per scaricare il codice sorgente, apportare modifiche a livello locale e quindi inviare tali modifiche al repository centrale. Git è leggermente diverso. È un sistema di controllo della versione distribuito , il che significa che in realtà non è un repository centrale ma piuttosto più cloni di repository. Quindi il "repository principale" esiste da qualche parte (come in GitHub) ma lavoriamo localmente su repository clone.

L'architettura distribuita di Git offre un vantaggio significativo rispetto ai sistemi di controllo della versione non distribuiti in quanto gli sviluppatori possono eseguire il check-in e il check-out locale del codice, creare rami e altro ancora. Per un cambiamento importante in un VCS tradizionale, dovresti creare un ramo personale e archiviare il codice in quel ramo. Una volta terminate le modifiche, uniresti quel ramo al ramo principale.

Controllo della versione distribuito

Git cambia il paradigma VC perché puoi lavorare localmente e unire tutte le tue modifiche in un unico commit (puoi mantenere la tua cronologia locale quando unisci o puoi combinare tutte le modifiche in un unico check-in). Quindi il repository centrale non è disseminato di rami e dozzine di note storiche, ma solo informazioni sulle modifiche alle funzionalità che sono state apportate. In sostanza, Git utilizza i rami come previsto: per sviluppare un nuovo set di funzionalità, per mantenere una versione o per correggere bug associati a una versione.

Quando installi Git sulla tua macchina locale e "cloni" un repository, ricevi l'intero repository, incluse le informazioni storiche su tutto il codice sorgente nel progetto. Quindi lavori sul tuo repository locale, aggiungendo nuovi file, rimuovendo file e modificando i file in un ambiente di staging fino a quando non li effettui effettivamente nel repository locale. Git conserva le informazioni sul controllo delle versioni di tutte le tue modifiche e puoi facilmente tornare indietro a qualsiasi punto della cronologia. Infine, quando sei pronto, puoi sincronizzare il tuo repository locale con uno remoto.

Changes are synchronized to a remote repository via a push while changes in a remote repository are synchronized with your local repository via a pull. Because you have a full clone of the repository locally, you are not limited to simply working against that repository's main branch. You can create branches to contain your changes and then either push or pull them as appropriate.

See Resources if you need a more complete tutorial introduction to Git. I'll focus on GitHub for the remainder of this article.

Social coding with GitHub

Dopo aver creato un account GitHub puoi iniziare a seguire il lavoro di altri sviluppatori di software o guardare i progetti che ti interessano. Puoi trovare persone o progetti da seguire cercandoli direttamente; oppure, se stai cercando idee, puoi utilizzare la funzione "Esplora" di GitHub per trovare progetti basati sui tuoi interessi. Esplora GitHub mostra i repository di tendenza e quelli in primo piano. Oltre a questi, puoi esplorare tutti i repository facendo clic sul pulsante "Repository" nella barra degli strumenti. Se desideri cercare progetti codificati in un linguaggio di programmazione specifico, puoi fare clic su "Lingue" sulla barra degli strumenti, quindi scegliere la lingua che desideri esplorare. La Figura 1 mostra i repository Java più seguiti (cioè di tendenza) al momento della stesura di questo documento.

Storm era il repository Java più visto su GitHub al momento in cui ho controllato. Una volta trovato un progetto che ti interessa, fai clic su di esso e vedrai l'opzione "Guarda", come mostrato nella Figura 2.

Se fai clic su "Guarda", verrai iscritto per seguire il progetto e potrai vedere le modifiche apportate ad esso sulla tua home page di GitHub. La figura 3 mostra la mia home page di GitHub, che contiene un elenco di aggiornamenti a vari progetti Spring.

Seguire singoli sviluppatori funziona allo stesso modo dei progetti seguenti. Ad esempio, di recente ho deciso di seguire il mio amico Tom Akehurst, come mostrato nella Figura 4.

From a social perspective, GitHub empowers you to easily find developers and projects that you might be interested in and receive updates about them. Of course, the flip side is also true: GitHub is an excellent place to show off your work and get feedback and recognition from your peers.

Using GitHub for project updates and maintenance

Remember that the main driver behind GitHub is to promote the development of open source software projects. So if you've built something good, why not contribute your code to GitHub and make it freely available to the world?

You can create a new repository from the GitHub website or from the client application on your desktop. In this section we'll first walk through creating a repository from the website, then I'll show you how to update and commit a file via the command-line.

Setting up a GitHub repository

Assuming that you have an account set up, log in and you'll see something similar to what's shown in Figure 5. Click "Create a Repository" and you'll be guided through the process. First, you'll click on the first item in your top-right toolbar, "Create a New Repo."

Click that link and give your repository a name and description. I created a new repository to host my GeekCap utilities, which is a set of helper classes that include sorting algorithms and a re-sortable list, a class that easily extracts icons from the Java Look-and-Feel Graphics Repository, ZIP utilities, and more. While not the coolest project, I included it because most of my other projects use one or more of these utilities, so it's good to have them stored in an accessible place. I named my project geek-util and gave it a description: "Geekcap Utilities: helpful classes that are used by other Geekcap.com projects."

Once your project is set up you should see a screen like the one shown the Figure 6.

Figure 6. Repository created (click to enlarge)

The screenshot in Figure 6 shows a listing of what you can do with your new repository, as well as an example of creating a README file and pushing it into your repository. I have an existing Maven project that I need to add for the first time, so I start by adding my pom.xml file and my src directory. Below are the Git commands that I entered for the initial push of the project into the repository:

Listing 1. Git commands for creating a repository

git init git add src git add pom.xml git commit -m 'Initial commit' git remote add origin //github.com/geekcap/geek-util.git git push -u origin master

Here's where familiarity with Git is important if you want to use GitHub. Fortunately, the main Git commands are relatively intuitive:

  • git init creates an empty Git repository. Specifically, this creates the .git directory, which the git command will recognize as a repository.
  • git add adds files to the repository; in this case I added my pom.xml and my src directory.
  • git commit commits changes to the repository. All I did was to add the pom.xml file and src directory. You would also use this command after modifying the contents of a file or deleting files via the git rm command.
  • git remote add origin adds the specified URL as the origin server for the Git repository. As you saw in Figure 6, the origin server is created on GitHub for you and the URL is provided in the setup documentation.
  • git push carica tutte le modifiche salvate sul server specificato. In questo caso ho inviato il commit iniziale che contiene la directory pom.xmle srcal server di origine, che ho impostato in precedenza.

Puoi usare Git dal tuo IDE o dalla riga di comando; Sono solo un drogato della riga di comando. L'esecuzione git helpmostra i comandi più comuni, che sono riassunti nel Listato 2.