ローカルのリポジトリとリモートのリポジトリをつないで、変更をPushしてみよう
GitHubに何かを置くと、それはGitHubのサーバ上に存在していることになります。これが リモート(remote) リポジトリです。なぜならこれはあなたのコンピュータ上ではなく、サーバ上にあるからです。あなたのローカル(あなたのコンピュータ上のことです)の変更をpushすることによって、最新状態を保つことができるのです。
他の人は、リモートにあるあなたの変更をpullして各個人のコンピュータに取り込むことによって、プロジェクトの最新の状態を得ることができます。こうやってお互いのコンピュータにアクセスすることなく、プロジェクトのメンバー同士でコードや情報を共有して共同作業することができるのです。
ローカル にあるバージョンを、GitHub.comに保存してあるリモートのバージョンと同期したいとします。そのためにまず、空っぽのリモートリポジトリをGitHub.comに作りましょう。
これらのファイルはオープンソースプロジェクトではよく見るファイルです。
readme はプロジェクトに関する説明と、どう使えばいいのか、そしてどうやって貢献したらいいかを書くものです。(貢献方法については、別途CONTRIBUTING.mdというファイルに分けて書くこともあります。)
.gitignore はGitに追跡 しない でほしいものの一覧です。たとえば、パスワードの入ったファイルなどです!
license ファイルは、プロジェクトに対するライセンスを定義します。ライセンスの形態についての情報はこちらです: choosealicense.com.
でも今回の場合は特に必要ありません。
これでGitHub.com上に空のリポジトリを作成できました。画面の一番上に'Quick Setup'があると思います。そこで'HTTPS'ボタンを選択してください。(デフォルトはSSHになっていると思います)そうしたら、アドレスをコピーしてください。これはGitHubサーバ上におけるあなたのリポジトリのアドレスを表しています。
ターミナルに戻って、前の章でGitリポジトリとして初期化した'hello-world'フォルダの中から、GitHubサーバ上にあるリモートバージョンの場所をGitに知らせましょう。それぞれに別の名前をつけることで、複数のリモートを設定することもできます。メインのリモートサーバに対しては、通常origin
と名付けることが慣習となっています。
$ git remote add origin <URLFROMGITHUB>
これで、あなたの ローカル(local) リポジトリはいま 'origin' と名づけられたGitHubのサーバ上にあるリモート(remote) がどこにあるかを知っている状態になります。これはちょうど電話番号に名前をつけて短縮ダイヤルとして登録するようなものです。さて、これで設定できたので、何かをリモートに送りたいと思った時にはいつでも送れるようになりました。
注意:
もしGitHub for Windowsをコンピュータにインストールしているのであれば、'origin'という名前のremoteは既に自動的に作られているかもしれません。その場合には、ただoriginがどのURLを指すのかを設定すればいいのです。次のように'add'の代わりにこのコマンドを入力します。:
$ git remote set-url origin <URLFROMGITHUB>
次に、ローカルで作業した内容をGitHubに push (送信) しましょう。 理想的には、ローカルとリモートのバージョンが一致するように、ずっと同期していたいですよね。
Gitにはブランチという仕組みがあります。これはプロジェクトの別々の箇所に対して別々のタイミングで作業できるようにするためのものです。このあたりについて詳しくはあとで学びますが、最初のブランチはデフォルトでは'master'という名前がつけられています。プロジェクトをPushするときには(またあとでpullするときには)、Gitに対象となるブランチ名とremoteの名前を伝えてやる必要があります。
今回のケースでは、'master'という名前のブランチをGitHub上にある'origin'という名前のremoteに送ります。
$ git push origin master
さてGitHubに行ってみて、リポジトリのページを読み込みなおしてみてください。おお! ローカルと同じものがリモートでも見れるようになりましたね。これがあなたの最初のpublicな リポジトリです! おめでとう!
{{{verify_directory_button}}}$ git remote add <REMOTENAME> <URL>
$ git remote set-url <REMOTENAME> <URL>
$ git pull <REMOTENAME> <BRANCHNAME>
$ git remote -v
$ git push <REMOTENAME> <BRANCH>