概要
Git初心者の学生が、GitHub入門でいきなりコケて2,3時間悩んで解決した。
すでにGitHub上にあるプロジェクトをフォーク&クローンして、それを元にわちゃわちゃする例はよくあるが、**自分がローカルで元々作っていたものを、「さぁ、これをGitHubにあげよう」ってなった時どういう手順で行うのか、**という疑問にドンピシャで答える感じの情報がなかった。
環境は、SourceTree × GitHub
各々の基本的な操作は割愛。
手順
1. ローカルレポジトリの準備
まずGitしたいディレクトリに移動。
$ cd ~/target
git initで.gitを作る。
$ git init
.gitignoreなどの設定はここのタイミングで行う。
自分の場合、node_modules/を外した。
そしてSourceTreeを開いてコミット
作業していた内容を全てコミットする。
2. GitHubでリモートレポジトリを作る
※詰まりポイント
readmeの自動生成や、add licenceなどでファイルを追加してしまうと、以降の手順でpushやpullができなくなってしまう。ここでかなり詰まった。
何もファイルのない空のレポジトリを作るべし。
3. GitHubと接続
GitHubの、clone or downloadのボタンを押し、出てきたURLをコピー。
※「~.git」となっている。
これを使い、
$ git remote add origin [レポジトリのURL]
これでremoteとして登録された。
push
$ git push -u origin master
これで成功。
こんな風に、masterとorigin/master両方が表示されていれば、良し。
※詰まりポイント
このpushの際に普通にpushしようとすると
The current branch master has no upstream branch
と返ってきてエラーに。upstream、つまり上流ブランチがないとのこと。調べるとトラッキングブランチともある。よく分からないが、「-u」をつけると次回からのpushがトラッキング(?)されて、ただのpushでもremoteに反映されるようになるのだとか。ともかくここは「-u」をつけるものと覚えておく。
まとめ
ローカルにレポジトリを用意!
GitHubに空のレポジトリを用意!
remote addからのpush -u!