GitHubは、何百万もの開発者が毎日集まってオープンソースソフトウェアでコラボレーションするWebサイトです。また、数十億行のコードをホストする場所でもあり、ソフトウェアのユーザーが抱えている問題を報告する場所でもあります。開発者として知っておくべきGitHubの最も重要な部分をすべて学びましょう
GitHubの紹介
GitHubは、何百万もの開発者が毎日集まってオープンソースソフトウェアでコラボレーションするWebサイトです。また、数十億行のコードをホストする場所でもあり、ソフトウェアのユーザーが抱えている問題を報告する場所でもあります。
要するに、それはソフトウェア開発者のためのプラットフォームであり、Gitを中心に構築されています。
ヒント:Gitについてまだ知らない場合は、Gitガイド。
開発者として毎日GitHubを使用することは避けられません、コードをホストするため、または他の人のコードを利用するため。この投稿では、GitHubのいくつかの重要な概念、ワークフローを改善するいくつかの機能の使用方法、および他のアプリケーションをプロセスに統合する方法について説明します。
なぜGitHubなのですか?
これで、GitHubが何であるかがわかりましたです、あなたは尋ねるかもしれませんなぜあなたはそれを使うべきです。
結局のところ、GitHubは、人々のコードをホストすることで利益を得る民間企業によって管理されています。では、BitBucketやGitLabなどの非常によく似たプラットフォームの代わりにそれを使用する必要があるのはなぜですか?
個人的な好みや技術的な理由の他に、大きな理由が1つあります。それは、誰もがGitHubを使用しているため、ネットワーク効果が非常に大きいことです。
主要なコードベースは、その利便性のために、時間の経過とともに他のバージョン管理システムからGitに移行し、GitHubは歴史的にオープンソースコミュニティにうまく位置付けられていました(そして「勝つ」ために多大な努力を払いました)。
そのため、今日、ライブラリを検索するときはいつでも、99%の確率でGitHubで見つけることができます。
オープンソースコードとは別に、多くの開発者は、独自のプラットフォームの利便性のために、GitHubでプライベートリポジトリをホストしています。
GitHubの問題
GitHubの問題は、世界で最も人気のあるバグトラッカーの1つです。
リポジトリの所有者は、マイルストーンの問題を整理、タグ付け、および割り当てることができます。
他の誰かが管理しているプロジェクトで問題を開いた場合、それを閉じるまで(たとえば、発生した問題を見つけた場合)、リポジトリの所有者が閉じるまで、問題は開いたままになります。
決定的な答えが得られる場合もあれば、問題が開いたままになり、問題を分類する情報がタグ付けされている場合もあります。開発者は問題を修正したり、フィードバックを使用してコードベースを改善したりすることができます。
ほとんどの開発者は、GitHubでリリースされたコードをサポートするために報酬を支払っていないため、迅速な返信を期待することはできませんが、オープンソースリポジトリは、そのコードに関連するサービスを提供するか、より多くの機能を備えたバージョンの商用サービスを提供する企業によって公開される場合があります。またはプラグインベースのアーキテクチャ。この場合、有料開発者としてオープンソースソフトウェアに取り組んでいる可能性があります。
ソーシャルコーディング
数年前、GitHubのロゴには「ソーシャルコーディング」のキャッチフレーズが含まれていました。
これはどういう意味ですか、それでも関係がありますか?確かにそうです。
フォローする
GitHubを使用開発者をフォローできます、プロフィールに移動して[フォロー]をクリックします。
リポジトリをフォローすることもできます、「見るリポジトリの「」ボタン。
どちらの場合も、アクティビティはダッシュボードに表示されます。人々の言うことを見るTwitterのようにはフォローしませんがあなたは人々が何をしているのか分かります。
出演者
GitHubの大きな偉業の1つは、リポジトリにスターを付ける。このアクションは、それを「スター付きリポジトリ」リストに含めます。これにより、以前に興味を持ったものを見つけることができます。また、レポのスターが多いほど重要であるため、最も重要な評価メカニズムの1つでもあります。検索結果に表示される量が多くなります。
主要なプロジェクトには70.000以上の星があります。
GitHubにはトレンドページここでは、今日、今週、または月など、決められた期間内に最も多くのスターを獲得するリポジトリを備えています。
これらのトレンドリストに入ると、可視性が向上したという理由だけで、他のサイトで取り上げられるなど、他のネットワーク効果を引き起こす可能性があります。
フォーク
プロジェクトの最後の重要なネットワーク指標は、フォークの数です。
フォークは変更提案であるプルリクエスト(PR)のベースであるため、これはGitHubが機能するための鍵となります。リポジトリから始めて、人はそれをフォークし、いくつかの変更を加え、次にそれらの変更をマージするように依頼するPRを作成します。
フォークをする人が、コードが気に入ってその上に何かを追加することを決めた、または発生していたバグを修正したという理由だけで、何かをマージするように要求しないことがあります。
フォークはGitHubプロジェクトのファイルのクローンを作成しますが、元のプロジェクトのスターや問題は複製しません。
人気=より良い
全体として、これらはすべてプロジェクトの人気の重要な指標であり、一般に、最新のコミットの日付と問題追跡システムへの作成者の関与とともに、信頼する必要があるかどうかを示すのに役立ちます。ライブラリまたはソフトウェア。
プルリクエスト
プルリクエスト(PR)とは何かを紹介する前に
リポジトリから始めて、人はそれをフォークし、いくつかの変更を加え、次にそれらの変更をマージするように依頼するPRを作成します。
プロジェクトには数百のPRが含まれる場合があります。一般に、Reactプロジェクトのように、人気の高いプロジェクトほどPRが多くなります。
GitHubインターフェイスを使用した簡単なプロセスであるPRを送信したら、プロジェクトのコアメンテナがレビューする必要があります。
に応じて範囲PR(変更の数、変更によって影響を受けるものの数、または触れられたコードの複雑さ)のメンテナは、変更がプロジェクトと互換性があることを確認するために多少の時間を必要とする場合があります。
プロジェクトには、導入したい変更の明確なタイムラインがある場合があります。 PRで複雑なアーキテクチャを導入している間、メンテナは物事をシンプルに保ちたいと思うかもしれません。
これは、PRがすぐに受け入れられるとは限らない、そしてまたPRが受け入れられるという保証はありません。
上に投稿した例では、1。5年前のPRがリポジトリにあります。そしてこれはすべてプロジェクト。
プロジェクト管理
開発者がユーザーからフィードバックを得る場所である問題に加えて、GitHubインターフェイスはプロジェクト管理を支援することを目的とした他の機能を提供します。
それらの1つはプロジェクト。エコシステムでは非常に新しく、ほとんど使用されませんが、かんばんボードこれは、実行する必要のある問題や作業を整理するのに役立ちます。
ザ・ウィキユーザー向けのドキュメントとして使用することを目的としています。私が今まで見たWikiの最も印象的な使用法の1つは、Goプログラミング言語GitHubWiki。
もう1つの人気のあるプロジェクト管理支援はマイルストーン。問題ページの一部として、リリースターゲットとなる可能性のある特定のマイルストーンに問題を割り当てることができます。
リリースと言えば、GitHubはGitタグ導入による機能リリース。
Gitタグは特定のコミットへのポインターであり、一貫して実行されると、特定のコミットを参照せずに以前のバージョンのコードにロールバックするのに役立ちます。
GitHubリリースはGitタグの上に構築され、コードの完全なリリースを表し、zipファイル、リリースノート、およびコードの最終製品の完全に機能するバージョンを表す可能性のあるバイナリアセットを表します。
Gitタグはプログラムで作成できますが(コマンドラインを使用するなど)git
プログラム)、GitHubリリースの作成は、GitHubUIを介して行われる手動プロセスです。基本的に、GitHubに新しいリリースを作成し、そのリリースを適用するタグを指示します。
コミットの比較
GitHubには、コードを操作するための多くのツールが用意されています。
あなたがしたいと思うかもしれない最も重要なことの1つは、あるブランチを別のブランチと比較することです。または、最新のコミットを現在使用しているバージョンと比較して、時間の経過とともに行われた変更を確認します。
GitHubを使用すると、ビューを比較、追加するだけ/compare
リポジトリ名に、たとえば:https://github.com/facebook/react/compare
たとえば、ここでは最新のものを比較することを選択しますReact v15.x最新にv16.0.0-rc何が変更されたかを確認するために、執筆時点で利用可能なバージョン:
ビューはあなたを示しています行われたコミット2つのリリース(またはタグまたはコミット参照)と実際の差分、変更の数が妥当な量より少ない場合。
Webhookとサービス
GitHubは、開発者のワークフローに役立つ多くの機能を提供します。それらの1つはWebhookであり、もう1つはサービスです。
Webhook
Webhookを使用すると、コードのプッシュ、フォークの作成、タグの作成または削除など、リポジトリで特定のイベントが発生したときに外部サービスにpingを実行できます。
イベントが発生すると、GitHubは使用するように指示したURLにPOSTリクエストを送信します。
この機能の一般的な使用法は、ローカルコンピューターから更新をプッシュするときに、リモートサーバーにpingを実行してGitHubから最新のコードをフェッチすることです。
GitHubにプッシュすると、GitHubはプッシュしたサーバーに通知し、サーバーはGitHubからプルします。
サービス
GitHubサービスと新しいGitHubアプリは、開発者のエクスペリエンスを向上させたり、サービスを提供したりするサードパーティの統合です。
たとえば、次を使用して、新しいコミットをプッシュするたびにテストを自動的に実行するようにテストランナーを設定できます。TravisCI。
を使用して継続的インテグレーションを設定できますCircleCI。
あなたは作成するかもしれませんCodeclimateコードを分析し、技術的負債とテストカバレッジのレポートを提供する統合。
最後の言葉
GitHubは、今日の開発者ツールセットの真の逸品である、活用できるすばらしいツールとサービスです。このチュートリアルは始めるのに役立ちますが、オープンソース(またはクローズドソース)プロジェクトでGitHubに取り組んだ実際の経験は見逃せません。
その他のgitチュートリアル:
- Gitチートシート
- 複数のブランチでの作業を管理するためのGitワークフロー
- Gitサブリポジトリを処理する簡単な方法
- 優れたGitチュートリアルの不完全なリスト
- 開発者によるGitHubの紹介
- 完全なGitガイド
- gitbisectを使用してバグを発見する方法
- GitHubで最初のプルリクエストを行う方法
- 別のブランチからGitブランチを更新する方法
- パスワード/ APIキーをGitHubに投稿しました
- Gitを押しつぶすコミット
- Gitリモートを削除する方法