GitHub入門(初心者向け)
非公式のコミュニティスキルです。事実はGitHub公式ドキュメントで確認しています(✓)。法的アドバイスではありません。
スタイル(厳守)
- ユーザーは何も知らず、Gitを学びたくないと仮定します。結果だけが欲しいのです。
- 一度に1ステップだけ指示します。ユーザーが目にする正確なボタン名やリンクテキストを伝え、ユーザーが「できた」と言うまで次のステップに進みません。
- 最初に1行の要約を示します。詳細は尋ねられた場合のみ説明します。
- スクリーンショットを送られてきたら、それを読んで現在の位置を伝えてから次の指示を出します。
- アシスタントがリポジトリアクセス権を持っていて自分でそのステップを実行できる場合は、代行を申し出ます。適切なツールやサインインフローを通じてアクセスを要求し、ユーザーにパスワードやアクセストークンをチャットに貼り付けさせることは決してしないでください。
1. リポジトリを作成する
- github.comの右上にある+をクリックし、New repositoryを選択します。
- 名前:短く、小文字、ハイフン区切り(例:
my-plugin)。 - Public(誰でも見える)かPrivateを選択します。
- Add a READMEにチェックを入れます。ドロップダウンからライセンスを選択します(セクション5を参照)。
- Create repositoryをクリックします。
空のリポジトリには「Quick setup」というコマンドラインのボックスが表示されます。初心者はそのすべてを無視して、代わりに「uploading an existing file」のリンクを使ってください。
2. リポジトリにファイルを置く(Web、Git不要)
リポジトリページで:Add file、次にUpload files。そしてファイルをドラッグするか、「choose your files」をクリックします。
制限(✓:GitHubドキュメント、Adding a file to a repository):
- ブラウザでアップロードする場合、1ファイルあたり25 MiB。
- 1回のアップロードにつき最大100ファイル。
- より大きなファイル(最大100 MiB)はコマンドラインが必要。100 MiBを超えるファイルはGit Large File Storageが必要。
- 保護されたブランチはWebアップロードでは編集できません。
- Push Protectionはトークンなどのサポートされたシークレットを含むファイルをブロックすることがあります。
フォルダ:ドキュメントではファイルやフォルダをドラッグできると書かれています。ユーザーのブラウザがフォルダを受け付けない場合は、代わりに以下のいずれかを使用します:
- Webエディターでフォルダを作成する:Add file、Create new file、名前ボックスに「
フォルダ名/ファイル名.md」と入力します(スラッシュを入力するとフォルダが作成されます)。内容を追加してコミットします。現在のUIでの動作を確認してください。 - フォルダを解凍し、フォルダ構造を維持したバッチでファイルをアップロードするか、GitHub Desktopを使用します。
- アシスタントがリポジトリアクセス権を持っている場合は、ファイルをプッシュさせます。
Zipファイルは単一ファイルとして保存されます。GitHubはZipを自動解凍しません。解凍済みの内容をアップロードしてください。
コミットメッセージ(短く、何を変更したか)を入力し、Commit changesボタンをクリックして終了します。
結果を確認する:リポジトリページを開き、ファイル一覧が意図したものと一致するか比較します。よくある間違い:ファイルがフォルダ内ではなくルートに配置されてしまうことです。
3. ダウンロード付きリリース(ユーザーがダウンロードするもの)
リリースとは、Gitタグに基づいたラベル付きダウンロードページです(✓:GitHubドキュメント、About releases)。
- リポジトリページでReleases(右側)をクリックし、Draft a new releaseを選択します。
- タグを選択します(例:
v1.0.0)。新しいものを入力し、Create new tagをクリックします。 - タイトルと説明:何なのか、3ステップでインストールする方法、変更点。
- ファイルをアセットボックスにドラッグします。初心者向けリリースには、オペレーティングシステムごとのビルド済みインストーラやファイル、短いマニュアル、インストール手順を含めます。生のファイルやソースコードだけではありません。
- Publish releaseをクリックします。
制限(✓):各ファイル2 GiB未満、リリースあたり最大1000アセット、合計サイズや帯域幅に制限なし。
リリースノートのテンプレート:
- 何か(1行)
- ダウンロード:システムを選択(Windows、macOS、Linux)
- 3ステップでインストール
- 各ファイルのチェックサム(SHA-256)
- 既知の問題
4. ライセンスとREADMEの基本
- ライセンスのないリポジトリはオープンソースではありません。他の人はそれを再利用する権利がありません。意図的に選んでください。
- MIT:非常に寛容で短い。AGPL-3.0またはGPL:コピーレフト。JUCEをオープンソースオプションで構築したプロジェクトはAGPLv3の対象です(✓:JUCEフォーラム、スタッフ)。ライセンスを選択する前に、現在のJUCEライセンスを確認してください。
- 権利を持っていないベンダーファイル(マニュアル、工場出荷時プリセット、ロゴ、バイナリ)を公開しないでください。代わりにリンクを貼ってください。
- READMEは以下に答える必要があります:何か、インストール方法、使い方、ライセンス、問題の報告方法。
5. 個人情報を公開しない(最も重要)
初めての公開プッシュの前に、すべてのファイルとコミットIDについて以下を確認します:本名、個人メール、電話番号、住所、雇用主、トークン、パスワード、ユーザー名を含むローカルパス。
コミットID:
- GitHubのnoreplyアドレスを使用します。Settings、Emailsで「Keep my email addresses private」にチェックを入れた状態で表示されます。形式:
<数値ID>+<ユーザー名>@users.noreply.github.com。 - コミット前に設定します:
git config user.name "<ユーザー名>"、git config user.email "<ID>+<ユーザー名>@users.noreply.github.com"。プッシュ前にgit log --format='%an <%ae>'で確認します。 - アシスタントがユーザーの代わりにコミットする場合、このIDを使用し、ユーザーの実際のメールアドレスは絶対に使用しないでください。
もし個人情報がすでに公開されてしまった場合(✓:GitHubドキュメント、Removing sensitive data from a repository):
- 認証情報の場合は、まずそれを失効またはローテーションします。それだけで十分な場合があります。
git-filter-repo(バージョン2.47以降、--sensitive-data-removal用)でローカルで履歴を書き換えます。--invert-paths --pathでファイルを削除するか、--replace-textでテキストを置き換えます。- Force-pushしてGitHub上のリポジトリを上書きします。
- GitHubサポートに連絡してキャッシュされたビューやプルリクエストの参照を削除してもらいます。リポジトリ名、影響を受けるPRの数、ツールの出力から最初に変更されたコミットを伝えます。
- フォークにはデータが残ります。フォークの所有者に削除を依頼してください。コラボレーターはマージではなくリベースする必要があります。
- ドキュメントからの警告:他の人のクローンにはデータが残ります。また、書き換えによって何が削除されたかが明らかになる可能性があります。データは見られたものと想定してください。
最近のコミットを修正するだけではブランチの先端にしか効果がありません。古いコミットは、GitHubがクリーンアップするまで直接リンクで到達可能な場合があるため、ステップ4は依然として適用されます。
5b. 何を公開するかの選択
- 研究ノート、キャプチャしたデバイスデータ、個人的なメモやチャットのトランスクリプトは、ユーザーがそう言わない限り、公開リポジトリに属しません。
- 公開用に書かれていないものを公開する前に、ユーザーに確認を取ってください。
6. 日常的なタスク(一度に1つずつ)
- Web上のファイルを編集する:ファイルを開き、鉛筆アイコンをクリックし、変更を加えてCommit changes。
- ファイルを削除する:ファイルを開き、三点リーダーをクリックし、Delete fileを選択してコミット。
- 名前を変更または移動する:ファイル名ボックスを編集して新しいパスを入力し、コミット。
- リポジトリをプロフィールにピン留めする:プロフィールページでCustomize your pins。
- プロジェクトのWebページ(GitHub Pages)を有効にする:Settings、Pagesでブランチとフォルダを選択。現在のUIを確認してください。
- 問題を報告または追跡する:Issuesタブ。バグ報告用にIssueテンプレートを提供します。
7. 何かが失敗した場合
- アップロードが拒否された:ファイルサイズ(Web制限25 MiB)、ファイル数(100)、保護されたブランチを確認します。
- フォルダがない:ファイルがフラットにアップロードされました。Create new fileでパスを再作成するか、再アップロードします。
- シークレット警告でプッシュが拒否された:シークレットを削除し、ローテーションして、再試行します。
- セキュリティプロンプトを無効にすることを決して提案しないでください。
出典
- GitHub docs, Adding a file to a repository: https://docs.github.com/en/repositories/working-with-files/managing-files/adding-a-file-to-a-repository
- GitHub docs, About releases: https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases
- GitHub docs, Removing sensitive data from a repository: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository