Open Source Java Projekte: GitHub

Wenn Sie neugierig auf GitHub waren, ist dieses kurze Tutorial in der Open Source Java-Projektreihe genau das Richtige für Sie. Verschaffen Sie sich einen Überblick über das Quellcode-Repository, das die Arbeitsweise vieler Entwickler sowohl einzeln als auch gemeinsam verändert hat. Probieren Sie GitHub dann selbst aus und verwenden Sie gängige Git-Befehle, um Ihr eigenes Open Source-Projekt zu verzweigen und festzuschreiben.

GitHub ist eine Social-Coding-Website und ein Quellcode-Hosting-Service, der Git als Versionskontrollsystem verwendet. GitHub wurde 2008 gestartet und hat bereits fast 1,7 Millionen Menschen, die fast 3 Millionen Repositories hosten. Wie in den meisten sozialen Netzwerken können Benutzer mit GitHub Feeds erstellen und verfolgen, die mit den Projekten des jeweils anderen verknüpft sind. Es erweitert das soziale Paradigma auch um Netzwerkdiagramme, die die Repository-Nutzung anzeigen. Sie können sich GitHub als soziales Netzwerk vorstellen, a la Facebook, aber nur für Softwareentwickler.

GitHub vereint soziale Elemente mit einem kostenlosen Repository, um Open-Source-Projekte zu hosten, und zielt darauf ab, eine unterstützende und aktive Community zur Verbesserung der Softwareindustrie aufzubauen. Je aktiver ein Projekt ist, desto mehr Menschen werden es finden und hoffentlich dazu beitragen. GitHub bietet auch kommerzielle Projektunterstützung zu nominalen Kosten an.

Mit GitHub können Benutzer nicht nur Projekte verfolgen, sondern auch einzelne Softwareentwickler verfolgen. Dies macht es einfach, auf dem Laufenden zu bleiben, was Freunde und Kollegen tun, ihren Code zu überprüfen, bekannte Programmierer zu suchen und ihre Arbeit zu verfolgen. Ein regelmäßig aktualisierter Feed bietet die Möglichkeit, jemandem beim Üben seines Handwerks zuzusehen. Für Entwickler gibt es viel zu lernen, wenn sie den Code und die Methodik des anderen studieren. Wenn Sie beispielsweise sehen können, welchen Code andere Entwickler wann für ihre Projekte verwenden, können Sie auf hoher Ebene mehr über den Release-Entwicklungszyklus erfahren.

Folgen Sie der Geschichte auf JavaWorld

  • Warum Entwickler Git für die Versionskontrolle wählen
  • Wenn das Gabeln zur Norm wird, machen Sie sich bereit für GitHub
  • GitHub erhält eine Investition von 100 Millionen US-Dollar

Durch Social Coding mit GitHub können Entwickler auf neue Weise voneinander lernen, während sie Code mithilfe eines beliebten, gut ausgestatteten Versionskontrollsystems speichern und aktualisieren. In dieser Ausgabe von Open Source Java-Projekten werde ich Ihnen helfen, mit GitHub zu beginnen. Zuerst werde ich einen Überblick über die Plattform geben und dann einige Git-Grundlagen vorstellen, einschließlich Befehlszeilenoptionen, die Sie häufig in GitHub verwenden. Abschließend werde ich ein einfaches Beispiel diffdurchgehen commit, das die alltägliche Leistungsfähigkeit dieses verteilten Code-Repositorys demonstriert.

Beginnen Sie mit GitHub

GitHub-Konten gibt es in verschiedenen Varianten, gruppiert nach einzelnen oder kommerziellen Konten sowie nach öffentlichen oder privaten Repositorys. Open Source-Entwickler können unbegrenzt öffentliche Repositorys einrichten oder gegen eine geringe Gebühr zwischen fünf und 20 private Repositorys hosten. Kommerzielle Entwickler zahlen mehr (ungefähr doppelt so viel wie Open Source-Entwickler wie derzeit) und können auf bis zu 125 private Repositories skaliert werden. Auf der GitHub-Homepage finden Sie eine vollständige Liste der Pläne und Preise.

Sie benötigen ein GitHub-Konto, um diesem Artikel folgen zu können. Gehen Sie zur GitHub-Website und klicken Sie oben auf der Seite auf den Link Anmeldung und Preisgestaltung. Klicken Sie auf "Kostenloses Konto erstellen" und schließen Sie die Kontoerstellung ab.

Wenn Sie Anweisungen zur Einrichtung Ihres Betriebssystems wünschen, lesen Sie das GitHub-Tutorial. Beachten Sie, dass der Installationsprozess automatisch einen GUI-Client installiert und Sie auffordert, die Befehlszeilentools von GitHub manuell zu installieren. Ich empfehle Ihnen, diese Option zu wählen, falls Sie jemals schnell etwas in der Befehlszeile tun möchten.

Git: Eine Grundierung

Sie müssen zumindest ein wenig mit Git vertraut sein, um GitHub effektiv nutzen zu können. Ein Punkt von Interesse für die meisten Geeks ist, dass Git von Linus Torvalds, dem Gründer von Linux, entworfen und entwickelt wurde. In diesem Abschnitt gebe ich einen Überblick über Git und beschreibe, wie es funktioniert. Gegen Ende des Artikels präsentiere ich einen Überblick über einige der beliebtesten Befehle, damit Sie schnell produktiv werden können. Dies ist keineswegs ein umfassendes Tutorial, aber es soll Ihnen den Einstieg erleichtern.

Wenn Softwareentwickler an ein Versionskontrollsystem (VCS) denken, denken wir in der Regel an ein zentrales Repository, mit dem wir Quellcode herunterladen, Änderungen lokal vornehmen und diese Änderungen dann an das zentrale Repository zurücksenden. Git ist ein bisschen anders. Es ist ein verteiltes Versionskontrollsystem , was bedeutet, dass es wirklich kein zentrales Repository ist, sondern mehrere Klone von Repositorys. Das "Master-Repository" existiert also irgendwo (wie in GitHub), aber wir arbeiten lokal an Klon-Repositorys.

Die verteilte Architektur von Git bietet einen erheblichen Vorteil gegenüber nicht verteilten Versionskontrollsystemen, da Entwickler Code lokal ein- und auschecken, Zweige erstellen und vieles mehr können. Für eine wesentliche Änderung in einem herkömmlichen VCS würden Sie einen persönlichen Zweig erstellen und Code in diesen Zweig einchecken. Wenn Sie mit Ihren Änderungen fertig sind, werden Sie diesen Zweig mit dem Hauptzweig zusammenführen.

Verteilte Versionskontrolle

Git ändert das VC-Paradigma, da Sie lokal arbeiten und alle Ihre Änderungen in einem einzigen Commit zusammenführen können (Sie können Ihren lokalen Verlauf beim Zusammenführen beibehalten oder alle Änderungen in einem Check-in kombinieren). Das zentrale Repository ist also nicht mit Zweigen und Dutzenden historischer Notizen übersät, sondern nur mit Informationen über vorgenommene Funktionsänderungen. Im Wesentlichen verwendet Git Zweige wie beabsichtigt: um einen neuen Funktionsumfang zu entwickeln, eine Version zu verwalten oder um mit einer Version verbundene Fehler zu beheben.

Wenn Sie Git auf Ihrem lokalen Computer installieren und ein Repository "klonen", erhalten Sie das gesamte Repository, einschließlich historischer Informationen über den gesamten Quellcode im Projekt. Anschließend arbeiten Sie mit Ihrem lokalen Repository, fügen neue Dateien hinzu, entfernen Dateien und ändern Dateien in einer Staging-Umgebung, bis Sie sie tatsächlich in das lokale Repository übertragen. Git verwaltet Versionsinformationen zu all Ihren Änderungen und Sie können problemlos zu einem beliebigen Punkt in Ihrem Verlauf zurückkehren. Wenn Sie bereit sind, können Sie Ihr lokales Repository mit einem Remote-Repository synchronisieren.

Änderungen werden über einen Push mit einem Remote-Repository synchronisiert , während Änderungen in einem Remote-Repository über einen Pull mit Ihrem lokalen Repository synchronisiert werden . Da Sie lokal über einen vollständigen Klon des Repositorys verfügen, können Sie nicht nur gegen den Hauptzweig des Repositorys arbeiten. Sie können Zweige erstellen, die Ihre Änderungen enthalten, und sie dann je nach Bedarf entweder drücken oder ziehen.

Weitere Informationen finden Sie unter Ressourcen, wenn Sie eine umfassendere Einführung in Git benötigen. Ich werde mich im weiteren Verlauf dieses Artikels auf GitHub konzentrieren.

Social Coding mit GitHub

Nachdem Sie ein GitHub-Konto erstellt haben, können Sie die Arbeit anderer Softwareentwickler verfolgen oder Projekte ansehen, die Sie interessieren. Sie können Personen oder Projekte finden, denen Sie folgen können, indem Sie direkt nach ihnen suchen. Wenn Sie nach Ideen suchen, können Sie die "Explore" -Funktion von GitHub verwenden, um Projekte zu finden, die auf Ihrem Interesse basieren. Explore GitHub zeigt sowohl trendige als auch vorgestellte Repositorys an. Darüber hinaus können Sie alle Repositorys durchsuchen, indem Sie in der Symbolleiste auf die Schaltfläche "Repositorys" klicken. Wenn Sie nach Projekten suchen möchten, die in einer bestimmten Programmiersprache codiert sind, können Sie in der Symbolleiste auf "Sprachen" klicken und dann die Sprache auswählen, die Sie untersuchen möchten. Abbildung 1 zeigt die am häufigsten beobachteten (dh trendigen) Java-Repositorys zum Zeitpunkt dieses Schreibens.

Storm war das meistgesehene Java-Repository auf GitHub, als ich es überprüfte. Wenn Sie ein Projekt gefunden haben, an dem Sie interessiert sind, klicken Sie darauf und es wird die Option "Beobachten" angezeigt (siehe Abbildung 2).

Wenn Sie auf "Beobachten" klicken, werden Sie abonniert, um das Projekt zu verfolgen, und können Änderungen daran auf Ihrer GitHub-Homepage sehen. Abbildung 3 zeigt meine GitHub-Homepage, die eine Liste der Updates für verschiedene Spring-Projekte enthält.

Das Folgen einzelner Entwickler funktioniert genauso wie das Folgen von Projekten. Zum Beispiel habe ich kürzlich beschlossen, meinem Freund Tom Akehurst zu folgen, wie in Abbildung 4 gezeigt.

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 lädt alle festgeschriebenen Änderungen auf den angegebenen Server hoch. In diesem Fall habe ich das anfängliche Commit, das das Verzeichnis pom.xmlund enthält src, auf den zuvor festgelegten Ursprungsserver übertragen.

Sie können Git über Ihre IDE oder über die Befehlszeile verwenden. Ich bin zufällig ein Kommandozeilen-Junkie. Die Ausführung git helpzeigt die häufigsten Befehle, die in Listing 2 zusammengefasst sind.