本記事の内容
本記事は「リポジトリは作れるけど、その後どう使うの?」という方向けである。前回の記事でリポジトリの作成からpushまでを解説した。今回は作ったリポジトリで作業をし、その作業の後どうやってGitHubに反映させるかを解説する。
とはいえ、実はリポジトリを作る、ということ以外前回の記事と同じことをするのである。
「説明はいいから結局何をすればいいんだ?」という方はちゃちゃっと解決したいを参照のこと。
「リポジトリの作成とその反映の仕方はわかったが、今後どのように使うの?」となっていると思われる。実は何も難しいことはなく、先述の通り前回の記事と同じようなことをするだけである。
結論
誠に単純明快である。
リモートリポジトリの内容をローカルリポジトリに反映させる(重要!) → 現状を確認(1人で管理しているならほぼいらない) → 作業 → 現状を確認(一応見ておく) → 編集したファイルをインデックスへ追加 → 編集内容をコミット → 編集内容をプッシュ → おしまい
である。
まさに前回の記事におけるリポジトリの作成を除けば同じことをするのである。
やること
リモートリポジトリの内容をローカルリポジトリに反映する
git pull
を実行。この操作は作業を始める前に1回行えば、基本的には十分である。 git pull
はリモートレポジトリ(GitHubで作ったリポジトリ)の内容をローカルリポジトリ(自分のパソコンの中で作業するレポジトリ)に同期させるための コマンドである。より正確に述べれば、「リモートレポジトリの内容をローカルレポジトリに取り込み、 現在のローカルのブランチに対してそれに対応するリモートブランチの内容をマージ(結合)するコマンド」である。
「え?これ本当に必要?」と思うかもしれないが、複数人で管理するリポジトリであれば必要である。というのも、自分が作業していない間に誰かがファイルを編集したかもしれないからである。この状態で新たに自分で編集すると競合という現象が起こる可能性があり、プッシュできなくなったりする。競合については別途記事を書く。
現状を確認
git status
を実行。これを実行すると現状を出力してくれる。どこにあるどのファイルを編集したのか、addしたのか、などを見ることができる。git status
を実行すると次のように出力される。
On branch 作業ブランチ
Your branch is up-to-date with 'リモートブランチ'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: 変更されているファイル名
:
: 複数のファイル
:
// ない場合は消える
Untracked files:
(use "git add <file>..." to include in what will be committed)
変更されているファイル名
:
: 複数のファイル
:
// ない場合は消える
nothing added to commit but untracked files present (use "git add" to track)
「あれ?今どんな状況?」となったらこのコマンドを実行すればよい。
作業
好きに作業する。
現状を確認
2.と同じでgit status
を実行。とはいえ、絶対に必要なことではないので、やらなくても良い。ただ、筆者としては他に別の人が同じファイルを編集してないかな、ということを確認するために毎度このコマンドを実行している。
編集したファイル(ディレクトリの場合もある)をインデックスへ追加
git add ファイル名
を実行。これでインデックスに追加される。
編集内容をコミット
git commit -m "メッセージ"
を実行。
編集内容をプッシュ
git push origin ブランチ名
を実行。
ちゃちゃっと解決したい
「説明はいいから、結局何をすればいいの?」という方はこの節を参照されたい。前節まで読んでいただいた方はこの節をまとめとして読んでいただければと思う。
git pull
を実行git status
を実行(必ず実行する必要はないが、実行を推奨)- 作業
git status
を実行(必ず実行する必要はないが、実行を推奨)git add
ファイル名 を実行git commit -m "メッセージ"
を実行git push origin ブランチ名
を実行- おしまい
結
今回は実際にGitHubを使う上でどういう流れで作業をするか、を解説した。結果として次を覚えておけば良い。
git pull → 作業 → git add ファイル名 → git commit -m “メッセージ” → git push origin ブランチ名