オープンソースのJavaプロジェクト:GitHub

GitHubに興味がある場合は、オープンソースJavaプロジェクトシリーズのこの短いチュートリアルが最適です。多くの開発者が個別に、そして共同で作業する方法を変えたソースコードリポジトリの概要を入手してください。次に、一般的なGitコマンドを使用して独自のオープンソースプロジェクトを分岐およびコミットし、GitHubを自分で試してください。

GitHubは、バージョン管理システムとしてGitを使用するソーシャルコーディングWebサイトおよびソースコードホスティングサービスです。 2008年に立ち上げられたGitHubは、すでに約170万人の人々が約300万のリポジトリをホストしています。ほとんどのソーシャルネットワークと同様に、GitHubを使用すると、ユーザーはお互いのプロジェクトに関連付けられたフィードを作成してフォローできます。また、ソーシャルパラダイムを拡張して、リポジトリの使用状況を示すネットワークグラフを含めます。あなたはソーシャルネットワークとしてのGitHubについて考えることができますのFacebookが、ちょうどソフトウェア開発者のため。

ソーシャル要素と無料のリポジトリを組み合わせてオープンソースプロジェクトをホストするGitHubは、ソフトウェア業界の改善のために協力的で活発なコミュニティを育成することを目的としています。プロジェクトが活発であればあるほど、より多くの人々がそれを見つけ、うまくいけばそれに貢献するでしょう。 GitHubは、わずかなコストで商用プロジェクトのサポートも提供します。

プロジェクトをフォローすることに加えて、GitHubを使用すると、ユーザーは個々のソフトウェア開発者をフォローできます。これにより、友人や同僚が行っていることに遅れずについていき、コードを確認したり、有名なプログラマーを探したり、彼らの仕事をフォローしたりすることが簡単になります。定期的に更新されるフィードは、誰かが自分の技術を練習するのを見る機会を提供します。開発者にとって、お互いのコードと方法論を研究することから学ぶことはたくさんあります。たとえば、他の開発者がプロ​​ジェクトにどのコードをいつプッシュするかを確認できることは、リリース開発サイクルについて高レベルで学ぶための優れた方法です。

JavaWorldでストーリーをフォローする

  • 開発者がバージョン管理にGitを選択する理由
  • フォークが標準になったら、GitHubの準備をします
  • GitHubは1億ドルの投資を獲得

GitHubを使用したソーシャルコーディングにより、開発者は、人気のある機能の豊富なバージョン管理システムを使用してコードを保存および更新しながら、新しい方法でお互いから学ぶことができます。今回のオープンソースJavaプロジェクトでは、GitHubの使用を開始するお手伝いをします。最初にプラットフォームの概要を説明し、次にGitHubで頻繁に使用するコマンドラインオプションなど、Gitの基本をいくつか紹介します。最後に、私はシンプルな中を歩くよdiff-to-commitこの分散コードリポジトリの日常の力を示す例。

GitHubを使い始める

GitHubアカウントにはいくつかの種類があり、個人アカウントまたは商用アカウント、およびパブリックリポジトリまたはプライベートリポジトリごとにグループ化されています。オープンソース開発者は無制限のパブリックリポジトリを許可されているか、少額の料金で5〜20のプライベートリポジトリをホストすることを選択できます。商用開発者はより多くの費用を支払い(この記事の執筆時点でオープンソース開発者の約2倍)、最大125のプライベートリポジトリに拡張できます。プランと価格の完全なリストについては、GitHubのホームページをご覧ください。

この記事をフォローするには、GitHubアカウントが必要です。GitHub Webサイトにアクセスし、ページ上部の[サインアップと価格設定]リンクをクリックします。「無料アカウントの作成」をクリックして、アカウント作成プロセスを完了します。

オペレーティングシステムのセットアップ手順が必要な場合は、GitHubチュートリアルを参照してください。インストールプロセスにより、GUIクライアントが自動的にインストールされ、GitHubのコマンドラインツールを手動でインストールするように求められることに注意してください。コマンドラインですばやく何かを実行したい場合に備えて、このオプションを選択することをお勧めします。

Git:入門書

GitHubを効果的に使用するには、少なくともGitにある程度精通している必要があります。ほとんどのオタクにとって興味深い点は、GitがLinuxの創設者であるLinusTorvaldsによって設計および開発されたことです。このセクションでは、Gitの概要を説明し、Gitがどのように機能するかを説明します。記事の終わりに向けて、すぐに生産性を上げるのに役立つ、より一般的なコマンドのいくつかのレビューを紹介します。これは完全なチュートリアルではありませんが、始めるのに役立つはずです。

ソフトウェア開発者がバージョン管理システム(VCS)について考えるとき、ソースコードをダウンロードし、ローカルで変更を加えてから、それらの変更を中央リポジトリに送信するために使用する中央リポジトリを考える傾向があります。 Gitは少し異なります。これは分散バージョン管理システムです。つまり、実際には中央リポジトリではなく、リポジトリの複数のクローンです。したがって、「マスターリポジトリ」はどこかに(GitHubのように)存在しますが、クローンリポジトリでローカルに作業します。

Gitの分散アーキテクチャは、開発者がコードをローカルでチェックインおよびチェックアウトしたり、ブランチを作成したりできるという点で、非分散バージョン管理システムに比べて大きな利点を提供します。従来のVCSの大きな変更については、個人用ブランチを作成し、そのブランチにコードをチェックインします。変更が完了したら、そのブランチをメインブランチにマージします。

分散バージョン管理

GitはVCパラダイムを変更します。これは、ローカルで作業し、すべての変更を1つのコミットでマージできるためです(マージ時にローカル履歴を保持することも、すべての変更を1つのチェックインに結合することもできます)。そのため、中央リポジトリにはブランチや数十の履歴メモが散らばっていませんが、行われた機能の変更に関する情報のみが散らばっています。本質的に、Gitは意図したとおりにブランチを使用します。つまり、新しい機能セットの開発、リリースの維持、またはリリースに関連するバグの修正です。

Gitをローカルマシンにインストールしてリポジトリを「複製」すると、プロジェクト内のすべてのソースコードに関する履歴情報を含むリポジトリ全体を受け取ります。次に、ローカルリポジトリに対して実際にコミットするまで、ステージング環境で新しいファイルの追加、ファイルの削除、およびファイルの変更を行います。 Gitはすべての変更に関するバージョン情報を維持しており、履歴の任意の時点に簡単にロールバックできます。最後に、準備ができたら、ローカルリポジトリをリモートリポジトリと同期できます。

変更はプッシュを介してリモートリポジトリに同期され、リモートリポジトリの変更はプルを介してローカルリポジトリと同期されます。ローカルにリポジトリの完全なクローンがあるため、そのリポジトリのメインブランチに対して単に作業することに限定されません。変更を含むブランチを作成し、必要に応じてプッシュまたはプルすることができます。

Gitのより完全なチュートリアルの紹介が必要な場合は、「参考文献」を参照してください。この記事の残りの部分では、GitHubに焦点を当てます。

GitHubを使用したソーシャルコーディング

GitHubアカウントを作成したら、他のソフトウェア開発者の作業をフォローしたり、興味のあるプロジェクトを監視したりできます。直接検索することで、フォローする人やプロジェクトを見つけることができます。または、アイデアを探している場合は、GitHubの「探索」機能を使用して、興味に基づいてプロジェクトを見つけることができます。 Explore GitHubは、注目のリポジトリだけでなく、トレンドのリポジトリも表示します。これらに加えて、ツールバーの「リポジトリ」ボタンをクリックすると、すべてのリポジトリを探索できます。特定のプログラミング言語でコード化されたプロジェクトを検索する場合は、ツールバーの[言語]をクリックしてから、探索する言語を選択します。図1は、この記事の執筆時点で最も注目されている(つまり、トレンドになっている)Javaリポジトリーを示しています。

Storm was the most watched Java repository on GitHub at the time that I checked. Once you find a project that you're interested in, click on it and you'll see a "Watch" option, as shown in Figure 2.

If you click "Watch" then you'll be subscribed to follow the project and will be able to see changes made to it on your GitHub homepage. Figure 3 shows my GitHub homepage, which contains a listing of updates to various Spring projects.

Following individual developers works the same way as following projects. For example, I recently decided to follow my friend Tom Akehurst, as shown in 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は、コミットされたすべての変更を指定されたサーバーにアップロードします。この場合、pom.xmlandsrcディレクトリを含む最初のコミットを以前に設定したオリジンサーバーにプッシュしました。

GitはIDEまたはコマンドラインから使用できます。私はたまたまコマンドライン中毒者です。実行するとgit help、リスト2に要約されている最も一般的なコマンドが表示されます。