2016-10-01 11 views
3

私はワークフローを理解していないので、私はオープンソースプロジェクトに貢献したことはないと認めなければなりません。私はgitのドキュメントで何度も見てきましたが、あまりにも難しいと感じました。オープンソースのgitリポジトリに貢献するためのワークフローは何ですか?

私はgitリポジトリ用のTeam Foundation Server(TFS)やVisual Studio Team Services(Visual Studio Online)のようなフロントエンドを使用して私のクライアント用のプライベートレポジトリにプルリクエストを行いました。 gitコマンドラインを使ってgitリポジトリで簡単に作業することもできます。なぜなら、そのワークフローは簡単だからです。しかし、私はコマンドラインを使ってgitワークフローを学び、オープンソースプロジェクトに貢献したいと思っています。

私はgithubのドキュメントから次の記事を読んでいます。私はワークフローをよく知っていると思うが、わからないし、他の人のプロジェクトで試してみるのも怖い。

  1. Fork a Repo
  2. Syncing a fork
  3. About pull requests
  4. About collaborative development models
  5. Creating a pull request from a fork
  6. Creating a pull request

私が本当に必要なの工程を簡略化するために誰かのためである私nいくつか、簡単に分かりやすい箇条書きです。

これまでの私の研究から、私は理解しています。

は、私たちは私たちがブーブーBaabaa命名されているの所有者という名前の架空のプロジェクトに貢献したいと仮定しましょう。私たちはI、ブーブーに貢献したい人は、https://www.github.com/Water-Cooler-v2/

以下

をgithubのアカウントを持っていると仮定してみましょう私はまでのワークフローを知っている段階です。これらのステップの後、私は何をすべきかはよく分かりません。

  1. まず私は自分のgithubのアカウントにhttps://www.github.com/Baabaa/Boo-Booからブーブーをフォーク。今、私は自分自身を持っていますブーブーフォークat https://www.github.com/Water-Cooler-v2/Boo-Boo

  2. その後、私のようなので、私のコンピュータ上のフォルダに自分自身のブーブーのクローンを作成:

    [email protected] MINGW64 /c/WaterCooler/MyFolder/ $ git clone https://www.github.com/Water-Cooler-v2/Boo-Boo.git

    これはフォルダはMyFolder /ブー・ブーにリポジトリの私のローカルコピーをリンクその後、私はで私のローカルリポジトリをリンクすなわちhttps://www.github.com/Water-Cooler-v2/Boo-Boo.git

  3. で、自分のフォークを指すoriginという名前remoteと Myfolder/Boo-BooとBaabaaのリモートリポジトリもあります。

    [email protected] MINGW64 /c/WaterCooler/MyFolder/Boo-Boo $ git remote --v

  4. :私は新しいが、リモート upstreamという名前にリンクされていることを確認し、

    [email protected] MINGW64 /c/WaterCooler/MyFolder/Boo-Boo $ git remote add upstream https://www.github.com/Baabaa/Boo-Boo.git

  5. 次へ:私はBaabaaのリポジトリとタイピングのURLをコピーして、これを行います

  6. 次に、リモートのupstreamからすべてのブランチを私のコンピュータのローカルリポジトリに、

    と入力してフェッチします。念のために

    [email protected] MINGW64 /c/WaterCooler/MyFolder/Boo-Boo $ git fetch upstream/master

  7. は今、私はとにかく、デフォルトではチェックアウトされるだろう、私の地元のmasterブランチを、チェックアウトが、私はとにかくそれをチェックアウトします:

    [email protected] MINGW64 /c/WaterCooler/MyFolder/Boo-Boo $ git checkout master

  8. その後ローカルのリポジトリにあるファイルをいくつか変更します。この場合、既存のファイルを編集します(これはgitコマンドを使用しないためです)。MyNewFile.txtという名前の新しいファイルを追加します。

    [email protected] MINGW64 /c/WaterCooler/MyFolder/Boo-Boo $ touch MyNewFile.txt

  9. 今、私は自分のmasterブランチにupstream/masterブランチをマージします。

[email protected] MINGW64 /c/WaterCooler/MyFolder/Boo-Boo $ git merge upstream/master

そして、今、私はそんなに明確ではないよなステップです。私は押しますか?どこに?私自身のフォーク(リモート origin master)または ババエブーブー(リモート upstream master)?

または、プルリクエストを作成しますか?

上記の最初の8つの手順についてワークフローの検証を行い、完了してください。

答えて

2

リポジトリをフォークし、ローカルマシンにクローンし、必要に応じてブランチを作成して変更します。現地での作業や自分のレポでの作業は実際問題ではありません。 GitFlowを使う必要はありません。あなたはトランクベースの開発など、あなたのために働くことができます。あなたが終わったら、それを自分のレポにプッシュします。次にGitHubに行き、元のrepoに対してPRを開きます。それがすべてです。

オリジナルをリモートとして追加することについて:元のレポをリモートとして追加する主な理由は、元のリポジトリ(マージ、リベース、チェリーピッキングなど)の変更をフォークに更新する場合です。いくつかのバグを修正するなど、オリジナルにワンショットで貢献するつもりならば、通常はリモートを持つ必要はありません。それは長期的な貢献のためにそれを追加する意味があります。

+0

ありがとうございます。私はあなたが言っていることを理解していると思います。あなたは言っている:地元の枝でそれを行うよりも良いので、あなたの仕事を行うために地元の支店を作る。それはいいです。あなたが追加した最後の2つのステップは以下の通りです:(1)あなたのローカルマスターをあなたのフォークされたリモートマスターに送ります。その後、** BaaBaa **の** BooBoo **リポジトリに行き、あなたのフォークから引き出すための新しいプルリクエストを作成します。私の要約は正しいですか? –

+1

@ WaterCoolerv2ほぼ。あなたはPRを作成するために元のレポに行く必要はありません。自分のリポジトリに移動し、 'プルリクエスト'をクリックして、 '新しいプルリクエスト'をクリックします。対話のドロップダウンには元のレポが表示されます。だからあなたはオリジナルからPRを作成することができます。 – Gordon

+0

素晴らしい。どうもありがとうございました。私はこのことを試しています。あなたが一度それをやった直後にあなたの答えをすぐに正しいものとしてマークします。 –

3

ワークフローが正しいです。

  • フォークに自分のブランチを作成し、originにプッシュしてください。ブランチを作成すると、ブランチを確認するときにメンテナが役立ちます。

  • 元のリポジトリに移動し、ページの上部にプルリクエストの作成を促すボタンが表示されます。

一般的に、オープンソースプロジェクトに貢献する最も困難な部分は、どこから始めるべきかを見つけることです。この問題を解決するために、素晴らしいジャンプ問題を持つプロジェクトを見つけるのに役立つ2つのサイトがあります。

http://up-for-grabs.net/#/
https://yourfirstpr.github.io/

+1

ありがとうございました。非常に役立つ。 –

+1

いくつかのPRの後で、そのリポジトリへの書き込み権限が与えられる可能性が高いことに注意してください。私が維持しているプロジェクトに興味を持っている人は誰でもアクセスできます。 – Dennis

+0

あまりにも厄介なことがなければ、小さなテストレポを作ってください。そのためにPRを作成してみてください。そうすれば、私はこれを実際に見ることができますか? :-) –

関連する問題