Gitのコマンドを,ワタシが覚えた順に記載していきます。
デザイナーさんとか生粋のエンジニアでない人でも,この順番でコマンドを覚えていけば,周囲に迷惑をかけず,かつ最低限便利にGitをつかえるハズです。
最初に知っておかねばいけない概念
まずはこれらの言葉を理解しておきましょう。ざっくりとしたイメージが持てれば十分です。
・リポジトリ
ファイルやディレクトリの変更履歴が保存されているところ。ローカルとリモートに存在しています
・ローカル
自分のPCのことです。自分のPC(ローカル)のリポジトリに,まずは変更履歴を保存していきます。
・リモート
いろんな人がファイル等の変更履歴を保存するところ。リモートにあるリポジトリとローカルのリポジトリを同期することよって,自分の成果物を他人と共有したり,逆に他人の成果物を取得してきたりできます。
・ブランチ
Gitをつかっていくうちに,変更履歴を分岐させて保存させたい場面が出てきます。たとえば,ある時点でのデータを残したまま,実験的にデータを改変していきたいときです。このような場合に,変更履歴を枝分かれさせ,元のデータを残しておく部分と,実験的にデータを改変しておく部分とに分けることができます。
この分岐したそれぞれの変更履歴のことをブランチ(枝)と呼びます。
ブランチは,いつでも合流させることができますし,さらに細かくブランチを切っていくこともできます。
Gitコマンドを使ってみる
なにはなくともpull
設定がひととおり終わったら,まずはpullをしてみましょう。pullを行うことで,最新のファイルを自分のPC(ローカル)に取得することができます。
git pull
他人の成果物をもらってくるだけですから,pullだけしている分には誰にも迷惑をかけません。気兼ねなくpullして,最新情報をガンガン取得してみましょう。
それから上記のコマンド,実は省略形です。
「どのリモート」の「どのブランチ」からファイルを取得するかを指定して書くこともできます。
git pull "リモート名" "ブランチ名"
例えば,よく使うのはこんな書き方でしょうね。
git pull origin master
いろんなブランチからpullしてこようとすると,問題が起こることもあるので,pullの後にブランチ名を指定するときは注意しましょう。どのブランチから取得すれば問題ないのかは,それぞれの環境によって異なります。担当者に確認してみてください。
branchを切ってcheckout
さて,リモートから最新の情報をpullしてきたら,今度は自分でファイルを更新していきましょう。pullしてきたブランチ(先ほどの例でいうとmaster)は,そのままの状態で保持しておき,自分の作業結果を保存しておくための別のブランチを切っておくことにします。
git branch "ブランチ名"
これで新しいブランチができます。
git checkout "ブランチ名"
これでブランチを移動することができました。リモートからpullしてきたmasterブランチの内容はそのまま保持されているので,気兼ねなく作業ができます。
addしてcommit
ここからはGitの肝とも言える部分です。自分の作業結果を,Gitに保存してみることにしましょう。
ポイントは,作業結果の保存が,以下のように二段階に別れているということです。
- 第一段階:自分が変更したファイルを,Gitの監視対象として追加する
- 第二段階:監視対象のファイルのうち,特定のファイルをGitの変更履歴に保存する
この,第一段階で使うコマンドが"add",第二段階で使うコマンドが"commit"です。
ではまず,自分が新たに作成・更新したファイルを,Gitの監視対象にしてみましょう。コマンドは以下のとおりです。
git add "変更するファイルのパス"
もし,"変更するファイルのパス"がわからないのなら,以下のコマンドを使いましょう。
git status
"Untrackd files:"と表示されたところに,Gitの監視対象になっていないファイルのパスが表示されているハズです。これをコピペして,対象ファイルをaddします。
次に,addされたファイルの変更履歴を保存します。
git commit
これで保存完了。複数のファイルをaddしておけば,全てのファイルの変更がまとめて保存されます。
意を決してpush!
ラストです。最後はリモートに,自分の作業結果を反映させてみましょう。
ここで注意が必要なのは,リモートのどのブランチに作業結果を反映させるのか,ということです。
たとえば,先ほどのpullの説明ででてきたmasterというブランチは,作業者全員が共有しても問題ないことが確認済みのファイルだけが保存されていることが多いです。
もし,あなたが作成・変更したファイルにミスがあり,大きなバグが仕込まれていた場合,これをこのままリモートのmasterブランチに保存してしまうと,他の作業者に多大な迷惑をかけてしまいます。
そこで,いきなりmasterブランチに作業結果を保存するのではなく,まずは別のブランチに保存するのがよいと思います。
具体的なコマンドは以下のようになります。
git push "リモート名" "保存先のブランチ名"
これで作業結果がリモートに保存されました。
最後に
これでGitの基本的なコマンドの説明は終わりになります。正確さよりもわかりやすさ重視で書いてあるので,ある程度慣れてきたら,もう少し詳しい解説を探して読んでみるとよいでしょう。mergeとかfetchとか,知らなければいけないコマンドは他にもたくさんあるので。