Proyectos Java de código abierto: GitHub

Si ha sentido curiosidad por GitHub, este breve tutorial de la serie de proyectos Java de código abierto es para usted. Obtenga una descripción general del repositorio de código fuente que ha cambiado la forma en que muchos desarrolladores trabajan, tanto de forma individual como colaborativa. Luego prueba GitHub por ti mismo, usando comandos comunes de Git para bifurcar y confirmar tu propio proyecto de código abierto.

GitHub es un sitio web de codificación social y un servicio de alojamiento de código fuente que utiliza Git como su sistema de control de versiones. Lanzado en 2008, GitHub ya cuenta con casi 1.7 millones de personas que albergan cerca de 3 millones de repositorios. Como la mayoría de las redes sociales, GitHub permite a los usuarios crear y seguir feeds asociados con los proyectos de los demás. También amplía el paradigma social para incluir gráficos de red que muestran el uso del repositorio. Puede pensar en GitHub como una red social, al estilo de Facebook, pero solo para desarrolladores de software.

Al reunir elementos sociales con un repositorio gratuito para alojar proyectos de código abierto, GitHub tiene como objetivo cultivar una comunidad activa y de apoyo para el mejoramiento de la industria del software. Cuanto más activo sea un proyecto, más gente lo encontrará y, con suerte, contribuirá a él. GitHub también ofrece soporte para proyectos comerciales a un costo nominal.

Además de seguir proyectos, GitHub permite a los usuarios seguir a desarrolladores de software individuales. Esto hace que sea más fácil mantenerse al día con lo que están haciendo amigos y colegas y revisar su código, así como buscar programadores conocidos y seguir su trabajo. Un feed actualizado periódicamente ofrece la oportunidad de ver a alguien practicar su oficio. Para los desarrolladores, hay mucho que aprender al estudiar el código y la metodología de los demás; por ejemplo, poder ver qué código introducen otros desarrolladores en sus proyectos, y cuándo, es una excelente manera de aprender a un alto nivel sobre el ciclo de desarrollo de versiones.

Siga la historia en JavaWorld

  • Por qué los desarrolladores eligen Git para el control de versiones
  • A medida que la bifurcación se convierte en norma, prepárate para GitHub
  • GitHub obtiene una inversión de $ 100 millones

La codificación social con GitHub permite a los desarrolladores aprender unos de otros de una manera nueva mientras almacenan y actualizan el código utilizando un sistema de control de versiones popular y bien equipado. En esta edición de proyectos Java de código abierto , lo ayudaré a comenzar con GitHub. Primero proporcionaré una descripción general de la plataforma, luego presentaré algunos conceptos básicos de Git, incluidas las opciones de línea de comandos que usará con frecuencia en GitHub. Finalmente, diffanalizaré un simple commitejemplo que demuestra el poder cotidiano de este repositorio de código distribuido.

Empiece con GitHub

Las cuentas de GitHub vienen en varios sabores, agrupadas por cuenta individual o comercial y por repositorio público o privado. A los desarrolladores de código abierto se les permiten repositorios públicos ilimitados, o por una pequeña tarifa pueden optar por alojar entre cinco y 20 repositorios privados. Los desarrolladores comerciales pagan más (aproximadamente el doble que los desarrolladores de código abierto al momento de escribir este artículo) y pueden escalar hasta 125 repositorios privados. Consulte la página de inicio de GitHub para obtener una lista completa de planes y precios.

Necesitará una cuenta de GitHub para seguir este artículo. Vaya al sitio web de GitHub y haga clic en el enlace Registrarse y precios en la parte superior de la página. Haga clic en "Crear una cuenta gratuita" y complete el proceso de creación de la cuenta.

Si desea instrucciones de configuración para su sistema operativo, consulte el tutorial de GitHub. Tenga en cuenta que el proceso de instalación instala automáticamente un cliente GUI y le solicita que instale manualmente las herramientas de línea de comandos de GitHub. Le recomiendo que elija esta opción en caso de que alguna vez quiera hacer algo rápidamente en la línea de comandos.

Git: una introducción

Deberá estar al menos algo familiarizado con Git para poder usar GitHub de manera efectiva. Un punto de interés para la mayoría de los geeks es que Git fue diseñado y desarrollado por Linus Torvalds, el fundador de Linux. En esta sección, proporciono una descripción general de Git y describo cómo funciona. Hacia el final del artículo, presento una revisión de algunos de los comandos más populares para ayudarlo a ser productivo rápidamente. Este no es de ninguna manera un tutorial exhaustivo, pero debería ayudarlo a comenzar.

Cuando los desarrolladores de software piensan en un sistema de control de versiones (VCS), tendemos a pensar en un repositorio central que usaremos para descargar el código fuente, realizar cambios localmente y luego enviar esos cambios al repositorio central. Git es un poco diferente. Es un sistema de control de versiones distribuido , lo que significa que realmente no es un repositorio central, sino múltiples clones de repositorios. Entonces, el "repositorio maestro" existe en algún lugar (como en GitHub) pero trabajamos localmente en repositorios clonados.

La arquitectura distribuida de Git proporciona un beneficio significativo sobre los sistemas de control de versiones no distribuidos en el sentido de que los desarrolladores pueden registrar y retirar código localmente, crear sucursales y más. Para un cambio importante en un VCS tradicional, debería crear una rama personal y verificar el código en esa rama. Cuando haya terminado con sus cambios, fusionará esa rama en la rama principal.

Control de versiones distribuido

Git cambia el paradigma de VC porque puede trabajar localmente y fusionar todos sus cambios en una única confirmación (puede mantener su historial local cuando se fusiona o puede combinar todos los cambios en una sola entrada). Por lo tanto, el repositorio central no está lleno de sucursales y docenas de notas históricas, sino solo información sobre cambios de características que se han realizado. En esencia, Git usa ramas como fueron diseñadas: para desarrollar un nuevo conjunto de características, para mantener una versión o para corregir errores asociados con una versión.

Cuando instalas Git en tu máquina local y "clonas" un repositorio, recibes el repositorio completo, incluida la información histórica sobre todo el código fuente del proyecto. Luego, trabaja contra su repositorio local, agregando nuevos archivos, eliminando archivos y cambiando archivos en un entorno de prueba hasta que realmente los confirma en el repositorio local. Git mantiene información de versiones sobre todos sus cambios y puede retroceder fácilmente a cualquier punto de su historial. Finalmente, cuando esté listo, puede sincronizar su repositorio local con uno remoto.

Los cambios se sincronizan con un repositorio remoto mediante una inserción, mientras que los cambios en un repositorio remoto se sincronizan con su repositorio local mediante una extracción . Debido a que tiene un clon completo del repositorio localmente, no está limitado a trabajar simplemente contra la rama principal de ese repositorio. Puede crear ramas para contener sus cambios y luego presionarlos o extraerlos según corresponda.

Consulte Recursos si necesita una introducción tutorial más completa a Git. Me centraré en GitHub durante el resto de este artículo.

Codificación social con GitHub

Después de haber creado una cuenta de GitHub, puede comenzar a seguir el trabajo de otros desarrolladores de software o ver proyectos que le interesen. Puede encontrar personas o proyectos a seguir buscándolos directamente; o, si está buscando ideas, puede usar la función "Explorar" de GitHub para encontrar proyectos basados ​​en su interés. Explore GitHub muestra los repositorios de tendencias, así como los destacados. Además de estos, puede explorar todos los repositorios haciendo clic en el botón "Repositorios" en la barra de herramientas. Si desea buscar proyectos codificados en un lenguaje de programación específico, puede hacer clic en "Idiomas" en la barra de herramientas y luego elegir el idioma que desea explorar. La Figura 1 muestra los repositorios Java más vistos (es decir, tendencias) en el momento de escribir este artículo.

Storm era el repositorio de Java más visto en GitHub en el momento en que lo verifiqué. Una vez que encuentre un proyecto que le interese, haga clic en él y verá la opción "Ver", como se muestra en la Figura 2.

Si hace clic en "Ver", estará suscrito para seguir el proyecto y podrá ver los cambios realizados en su página de inicio de GitHub. La Figura 3 muestra mi página de inicio de GitHub, que contiene una lista de actualizaciones de varios proyectos de Spring.

Seguir a los desarrolladores individuales funciona de la misma manera que seguir los proyectos. Por ejemplo, recientemente decidí seguir a mi amigo Tom Akehurst, como se muestra en la 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 carga todos los cambios confirmados en el servidor especificado. En este caso, he enviado la confirmación inicial que contiene el directorio pom.xmly srcal servidor de origen, que configuré previamente.

Puede usar Git desde su IDE o desde la línea de comando; Resulta que soy un adicto a la línea de comandos. La ejecución git helpmuestra los comandos más comunes, que se resumen en el Listado 2.