初学者同士で共同開発してみようという話になり、その過程でまず「gitをクローンする前にフォークして」って言われ、「はい???」
となったので、まずは「フォークとは」というところから始めてみました。
Forkとは
フォークは、リポジトリのコピーです。
リポジトリをフォークすると、元のプロジェクトに影響を与えずに自由に変更を試すことができます。
最も一般的には、フォークは他人のプロジェクトへの変更を提案するか、
他人のプロジェクトを自分のアイデアの出発点として使用するために使用されます。
ーgithubドキュメントよりー
https://docs.github.com/ja/github/getting-started-with-github/fork-a-repo
はい。ということで共同開発にあたりForkとやらを使おう。ということになったみたいっす。
で、実際やってみる。
実際にFork ~ git clone ~ プルリクするまでの手順
1. まず、クローンしたい大元のレポジトリがあるgithubのページにいき、ページ右上にある「Fork」のボタンを押す。
2. Forkされたレポジトリのページが新しく開かれる。そのレポジトリのURLをコピーする
3. ターミナルで先ほどコピペしたURLをクローンする。
$ git clone
https://github.com/USERNAME/Sample
($ git clone コピーしたURL)
4.クローンしたディレクトリの場所に移動する
$ cd Sample
(上記のクローンの際に ~USERNAME/Sample としているので、Sample というディレクトリをクローンしていることになります)
※Qiitaやブログなどの記事で、たまにこのcdでディレクトリ移動する手順が抜けてる記事がありますが、初学者の自分はそこで案の定、躓きました(泣)
ここでremote -v で確認してみると
$ git remote -v
> origin https://github.com/USERNAME/Sample_FORK.git (fetch)
> origin https://github.com/USERNAME/Sample_FORK.git (push)
5. remoteにupstreamを追加する
まず、大元のレポジトリのgithubページにいき、レポジトリのURLをコピーする。
(Forkして作られたレポジトリでなく、あくまで大元。自分は一度、間違えてForkされた作られたレポジトリのURLをコピーしてしまいました、、)
コピーしたらターミナルで
$ git remote add upstream https://github.com/Original/Sample.git
($ git remote add upstream コピーしたURL)
と打つ。
で、git remote -v で確認してみると
$ git remote -v
> origin https://github.com/USERNAME/Sample_FORK.git (fetch)
> origin https://github.com/USERNAME/Sample_FORK.git (push)
> upstream https://github.com/Original/Sample.git (fetch)
> upstream https://github.com/Original/Sample.git (push)
とoriginalとupstream両方設定されているのがわかる。
このupstreamを追加するって、つまりどういうこと?
Forkした自分のレポジトリはFork元である大元のリポジトリの変更内容を自動更新しません。
はい。上記の説明+図が理解に助かります。
んで、いったん
6. ブランチを切ります。
$ git checkout -b feature/test
もろもろ作業したら、
7. 変更をプッシュ
$ git add .
$ git commit -m "コメント"
$ git push origin test
8. githubのページでプルリクする
です。お疲れ様でした。
ちなみに、
pullする際の手順
まだ、実際にやってないのですが
githubのドキュメントによると
1. fetch
$ git fetch upstream
> remote: Counting objects: 75, done.
・・・
2. マスターブランチに移動
$ git checkout master > Switched to branch 'master'
3. マージ
$ git merge upstream/master
https://docs.github.com/ja/github/collaborating-with-issues-and-pull-requests/syncing-a-fork
という流れで、いけるみたいです。
ま、普段使っているgitとほぼ一緒すな。
番外編 間違えてupstreamを設定してしまったら。。
upstreamを間違えて追加してしまった。。
初学者である自分は間違えて
$ git remote add upstream 大元となるオリジナルのレポジトリURL
とするところを
$ git remote add upstream ForkしてできたレポジトリのURL
としてしまいました。。
そんな慌てん坊な方は
$ git remote rm upstream
で、いったん削除して、改めて
$ git remote add upstream 大元となるオリジナルのレポジトリURL
$ git remote -v
で確認してupstreamのURLが大元となるレポジトリになっていれば大丈夫。
はい、お騒がせしました!