初めてのことは何でも大変なものです。特に他人と協力する時に、間違うのは気持ちの良いことではありません。しかし、オープンソースにおける活動では協力することが全てです。私たちは初めてオープンソースへの貢献を始める人たちが簡単に貢献する方法を学べるようにしたいと考えています。
記事を読んだりチュートリアルをやってみることはためになりますが、実際にやってみる方が良いでしょう。このプロジェクトはそのガイダンスを行い、初心者が最初のオープンソースへの貢献を簡単に行えるようにするためのものです。
覚えておいてください: リラックスしているほどより良く学ぶことができます。初めてのオープンソースへの貢献を行いたいのなら以下の簡単なステップに従ってください。それはとても面白いものになるでしょう。
コマンドラインでの操作に慣れていない場合、グラフィカルなツールでもチュートリアルを行えます。
まだGitをインストールしていない場合は、ここからインストールしてください
Forkボタンをクリックしてこのリポジトリをフォークしてください。 この作業はあなたのアカウントにこのリポジトリのコピーを作ります。
次にレポジトリをクローンします。Clone and downloadボタンをクリックした後にCopy to clipboardアイコンをクリックしてください。
ターミナルを開いて以下のgitコマンドを実行してください:
git clone "コピーしたURL"
"コピーしたURL" (ダブルクオーテーションは除いてください) は先ほどコピーしたリポジトリのURLと置き換えてください。
例:
git clone https://github.com/<あなたのユーザー名>/first-contributions.git
あなたのユーザー名
はご自身のGitHubユーザー名に置き換えてください。この作業でGitHub のリポジトリの内容はあなたのコンピュータに保存されました。
もしリポジトリのディレクトリにいなければそこまで移動してください。
cd first-contributions
git switch
コマンドを使用してブランチを作成します:
git switch -c <add-your-name>
例:
git switch -c add-alonzo-church
(ブランチの名前には必ずしもaddが含まれていなければならないわけではありませんが、このブランチの目的があなたの名前をリストに加えることであることを考慮すれば含むのが適切です。)
テキストエディタでContributors.md
ファイルを開いてあなたの名前を追加してください。ただし、ファイルの先頭または最後に追加しないようにしましょう。名前リストの間のどこか好きな場所に、あなたの名前を追加するようにしてください。あなたの名前をファイルに加えたら、ファイルを保存します。
プロジェクトディレクトリに移動してgit status
を実行すると、変更がなされたことが確認できると思います。git add
コマンドを使ってそれらの変更を適用してください。
git add Contributors.md
次にgit commit
コマンドを使ってこれらの変更をコミットします。
git commit -m "Add <あなたの名前> to Contributors list"
<あなたの名前>
をご自身の名前に置き換えてください。
git push
コマンドを使って変更をpushしてください。
git push origin <ブランチ名>
<ブランチ名>
には先ほど作成したブランチ名を入れてください。
GitHub上であなたのリポジトリに行くと、Compare & pull request
ボタンが表示されます。そのボタンをクリックしてください。
プルリクエストを作ってください。
すぐに私が加えられた変更をmainブランチにマージします。マージが終了した際にはその旨のメールが送られます。
おめでとうございます! コントリビューターとして重要な フォーク -> クローン -> 編集 -> プルリクエスト の基本的なワークフローが完了しました。
初のオープンソースへの貢献を祝って友達やフォロワーにそのことをこのウェブアプリを使ってシェアしましょう。
もし何かしら質問があるようでしたら私たちのSlack teamに入ってください。
他のプロジェクトへの貢献を始めましょう。簡単なイシューが立てられているプロジェクトのリストを作りました。ウェブアプリでプロジェクトリストを確認て見てください。
GitHub Desktop | Visual Studio 2017 | GitKraken | Visual Studio Code | Atlassian Sourcetree | IntelliJ IDEA |