Projets Java Open Source: GitHub

Si vous êtes curieux de connaître GitHub, ce court didacticiel de la série de projets Open source Java est fait pour vous. Obtenez une vue d'ensemble du référentiel de code source qui a changé la façon dont de nombreux développeurs travaillent, à la fois individuellement et en collaboration. Essayez ensuite GitHub par vous-même, en utilisant les commandes Git courantes pour créer des branches et valider votre propre projet open source.

GitHub est un site Web de codage social et un service d'hébergement de code source qui utilise Git comme système de contrôle de version. Lancé en 2008, GitHub compte déjà près de 1,7 million de personnes hébergeant près de 3 millions de référentiels. Comme la plupart des réseaux sociaux, GitHub permet aux utilisateurs de créer et de suivre des flux associés aux projets de chacun. Il étend également le paradigme social pour inclure des graphiques de réseau qui montrent l'utilisation du référentiel. Vous pouvez considérer GitHub comme un réseau social, à la Facebook, mais juste pour les développeurs de logiciels.

Réunissant des éléments sociaux avec un référentiel gratuit pour héberger des projets open source, GitHub vise à cultiver une communauté solidaire et active pour l'amélioration de l'industrie du logiciel. Plus un projet est actif, plus les gens le trouveront et, espérons-le, y contribueront. GitHub propose également un support de projet commercial à un coût nominal.

En plus de suivre les projets, GitHub permet aux utilisateurs de suivre des développeurs de logiciels individuels. Cela permet de suivre facilement ce que font les amis et collègues et de réviser leur code, ainsi que de rechercher des programmeurs bien connus et de suivre leur travail. Un flux régulièrement mis à jour offre la possibilité de regarder quelqu'un pratiquer son métier. Pour les développeurs, il y a beaucoup à apprendre en étudiant le code et la méthodologie de chacun; par exemple, être capable de voir quel code les autres développeurs appliquent à leurs projets, et quand, est un excellent moyen d'apprendre à un niveau élevé sur le cycle de développement des versions.

Suivez l'histoire sur JavaWorld

  • Pourquoi les développeurs choisissent Git pour le contrôle de version
  • Alors que la fourche devient la norme, préparez-vous pour GitHub
  • GitHub obtient un investissement de 100 millions de dollars

Le codage social avec GitHub permet aux développeurs d'apprendre les uns des autres d'une nouvelle manière tout en stockant et en mettant à jour le code à l'aide d'un système de contrôle de version populaire et bien équipé. Dans cette édition de projets Java Open source, je vais vous aider à démarrer avec GitHub. Je vais d'abord donner un aperçu de la plate-forme, puis présenter quelques bases de Git, y compris les options de ligne de commande que vous utiliserez fréquemment dans GitHub. Enfin, je vais marcher par un simple diff-à- commitexemple qui démontre la puissance de tous les jours de ce référentiel de code distribué.

Démarrez avec GitHub

Les comptes GitHub se déclinent en plusieurs versions, regroupés par compte individuel ou commercial et par référentiel public ou privé. Les développeurs open source sont autorisés à disposer de référentiels publics illimités, ou pour une somme modique peuvent choisir d'héberger entre cinq et 20 référentiels privés. Les développeurs commerciaux paient plus (environ deux fois plus que les développeurs open source à ce jour) et peuvent évoluer jusqu'à 125 référentiels privés. Consultez la page d'accueil de GitHub pour une liste complète des plans et des tarifs.

Vous aurez besoin d'un compte GitHub pour suivre cet article. Accédez au site Web de GitHub et cliquez sur le lien Inscription et tarification en haut de la page. Cliquez sur "Créer un compte gratuit" et terminez le processus de création de compte.

Si vous souhaitez des instructions de configuration pour votre système d'exploitation, consultez le didacticiel GitHub. Notez que le processus d'installation installe automatiquement un client GUI et vous invite à installer manuellement les outils de ligne de commande de GitHub. Je vous recommande de prendre cette option au cas où vous voudriez faire quelque chose rapidement sur la ligne de commande.

Git: une amorce

Vous devrez au moins être familier avec Git pour pouvoir utiliser efficacement GitHub. Un point intéressant pour la plupart des geeks est que Git a été conçu et développé par Linus Torvalds, le fondateur de Linux. Dans cette section, je donne un aperçu de Git et décris son fonctionnement. Vers la fin de l'article, je présente une revue de quelques-unes des commandes les plus populaires pour vous aider à devenir rapidement productif. Ce n'est en aucun cas un tutoriel exhaustif mais cela devrait vous aider à démarrer.

Lorsque les développeurs de logiciels pensent à un système de contrôle de version (VCS), nous avons tendance à penser à un référentiel central que nous utiliserons pour télécharger le code source, apporter des modifications localement, puis soumettre ces modifications au référentiel central. Git est un peu différent. C'est un système de contrôle de version distribué , ce qui signifie qu'il ne s'agit pas vraiment d'un référentiel central mais plutôt de plusieurs clones de référentiels. Donc, le "référentiel maître" existe quelque part (comme dans GitHub) mais nous travaillons localement sur des référentiels clones.

L'architecture distribuée de Git offre un avantage significatif par rapport aux systèmes de contrôle de version non distribués en ce sens que les développeurs peuvent enregistrer et extraire localement le code, créer des branches, etc. Pour un changement majeur dans un VCS traditionnel, vous créez une branche personnelle et enregistrez le code dans cette branche. Lorsque vous auriez terminé vos modifications, vous fusionniez cette branche dans la branche principale.

Contrôle de version distribué

Git change le paradigme VC car vous pouvez travailler localement et fusionner toutes vos modifications dans un commit singulier (vous pouvez conserver votre historique local lorsque vous fusionnez ou vous pouvez combiner toutes les modifications en un seul enregistrement). Ainsi, le référentiel central n'est pas jonché de branches et de dizaines de notes historiques, mais uniquement d'informations sur les modifications de fonctionnalités qui ont été apportées. En substance, Git utilise les branches comme prévu: pour développer un nouvel ensemble de fonctionnalités, pour maintenir une version ou pour corriger les bogues associés à une version.

Lorsque vous installez Git sur votre machine locale et "clonez" un référentiel, vous recevez l'intégralité du référentiel, y compris des informations historiques sur tout le code source du projet. Vous travaillez ensuite sur votre référentiel local, en ajoutant de nouveaux fichiers, en supprimant des fichiers et en modifiant des fichiers dans un environnement intermédiaire jusqu'à ce que vous les validiez réellement dans le référentiel local. Git gère les informations de version sur toutes vos modifications et vous pouvez facilement revenir à n'importe quel point de votre historique. Enfin, lorsque vous êtes prêt, vous pouvez synchroniser votre référentiel local avec un référentiel distant.

Les modifications sont synchronisées avec un référentiel distant via un push tandis que les modifications dans un référentiel distant sont synchronisées avec votre référentiel local via un pull . Parce que vous avez un clone complet du référentiel localement, vous n'êtes pas limité à simplement travailler sur la branche principale de ce référentiel. Vous pouvez créer des branches pour contenir vos modifications, puis les pousser ou les extraire selon les besoins.

Consultez Ressources si vous avez besoin d'un didacticiel plus complet sur Git. Je vais me concentrer sur GitHub pour le reste de cet article.

Codage social avec GitHub

Après avoir créé un compte GitHub, vous pouvez commencer à suivre le travail d'autres développeurs de logiciels ou à regarder les projets qui vous intéressent. Vous pouvez trouver des personnes ou des projets à suivre en les recherchant directement; ou, si vous recherchez des idées, vous pouvez utiliser la fonction «Explorer» de GitHub pour trouver des projets en fonction de vos intérêts. Explorez GitHub affiche les référentiels de tendances ainsi que les principaux. En plus de cela, vous pouvez explorer tous les référentiels en cliquant sur le bouton "Référentiels" de la barre d'outils. Si vous souhaitez rechercher des projets codés dans un langage de programmation spécifique, vous pouvez cliquer sur "Langues" dans la barre d'outils, puis choisir la langue que vous souhaitez explorer. La figure 1 montre les dépôts Java les plus regardés (c'est-à-dire les plus tendances) au moment de la rédaction de cet article.

Storm était le référentiel Java le plus regardé sur GitHub au moment où j'ai vérifié. Une fois que vous avez trouvé un projet qui vous intéresse, cliquez dessus et vous verrez une option «Regarder», comme le montre la figure 2.

Si vous cliquez sur "Regarder", vous serez inscrit pour suivre le projet et pourrez voir les modifications apportées à celui-ci sur votre page d'accueil GitHub. La figure 3 montre ma page d'accueil GitHub, qui contient une liste des mises à jour de divers projets Spring.

Suivre des développeurs individuels fonctionne de la même manière que les projets suivants. Par exemple, j'ai récemment décidé de suivre mon ami Tom Akehurst, comme le montre la figure 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 télécharge toutes les modifications validées sur le serveur spécifié. Dans ce cas, j'ai poussé le commit initial qui contient le répertoire pom.xmland srcvers le serveur d'origine, que j'ai précédemment défini.

Vous pouvez utiliser Git depuis votre IDE ou depuis la ligne de commande; Je viens d'être un drogué de la ligne de commande. L'exécution git helpmontre les commandes les plus courantes, qui sont résumées dans le Listing 2.