Git初心者が最低限抑えておきたい9つのコマンド

github

今年最後の楽天スーパーSALEがまもなく開催! エントリーが必要なのでお忘れなく!

Gitを使いたいけどコマンドがたくさんあって難しい!業務でよく使うコマンドはどれ?

今回はこんな疑問に答えていきます。

Gitには数多くのコマンドがありベテランのエンジニアでも全てのコマンドを覚えている人は殆どいません。

しかしこれは数が多すぎて覚えられないのではなく、最低限のコマンドさえ覚えれば業務では問題無いと言うことになります。

そこで今回の記事ではGitのコマンドの中でも良く使うコマンドを具体例と共に解説していきます。

エンジニアを目指すのであればGitは必須スキルとなるので、これを機会に是非使えるようになっておきましょう。



git cloneを使ってローカルにリポジトリを持ってこよう

github上にあるリポジトリをローカルに落としてくる際に使用するコマンド。

一人で開発している場合は使用することが滅多にないがチームで開発をする場合にはまずこれを使うことが多い。git cloneを行う際には「SSH」と「HTTPS」の2種類あるがgithubに鍵登録を行っている場合はSSHでcloneするのがおすすめ。


$ git clone https://github.com/rails/rails with SSH
$ git clone git@github.com:rails/rails.git

githubにログインしている時のみ下記の画像の様にSSHのリンクを表示することが可能なのでUse SSHが出てこずにSSHでクローンが出来ないという人はgithubにログインされているかを確認しよう。

git branchでブランチの確認、移動、削除

ブランチの確認、作成、削除したりするコマンド


# ローカルにあるブランチ一覧と現在自分がいるブランチを確認
$ git branch

# ブランチの作成
$ git branch feature/implements-something

# ブランチの削除
$ git branch -D feature/implements-something

git addでファイルを追加してみよう

ローカルで行った追加・変更をgithubのインデックスに追加するためのコマンド

基本的にはファイル名を指定するパターンと一括で追加する2パターンで利用される事が多い。


# sample.txtというファイルを追加
$ git add sample.txt

# カレントディレクトリのファイルを全て追加
$ git add .

ちなみに上記の方法だとadd時にファイルの差分が見れないという欠点があるので個人的には「-p」オプションを使うことを強く推奨したい。「-p」オプションを使うメリットしては下記の2つ。

  • git diffを使わずに変更差分が見れる
  • 1つのファイルでも塊単位でaddするかを選択可能

例としては下記のようなREADME.mdの差分があるとする


MacBook-Air-2:first_project himakuro$ git diff
diff --git a/README.md b/README.md
index b62376a..5ea765a 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,9 @@ First git project
 ## Requirements
 - first requirement
 - second requirement
+- third requirement
+- forth requirement
+- fifth requirement

 ## Usage

@@ -13,5 +16,6 @@ First git project
 - third step

 ## Author
+- himakuro

 ## Lisence

このファイルのauthorのところだけを追加したい場合は下記のように行う。


MacBook-Air-2:first_project himakuro$ git add -p
diff --git a/README.md b/README.md
index b62376a..5ea765a 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,9 @@ First git project
 ## Requirements
 - first requirement
 - second requirement
+- third requirement
+- forth requirement
+- fifth requirement

 ## Usage

Stage this hunk [y,n,q,a,d,/,j,J,g,e,?]? n
@@ -13,5 +16,6 @@ First git project
 - third step

 ## Author
+- himakuro

 ## Lisence
Stage this hunk [y,n,q,a,d,/,K,g,e,?]? y

塊単位で「Stage this hunk」(差分をadd)するか聞かれるのでaddする場合は「y」、しない場合は「n」と入力していく。

なかなか初心者のうちはオプションを使うという所まで頭が回らないかもしれないがこれは最初のうちから使って定着させておくと良い。

git checkoutでブランチ作成、移動、差分の巻き戻し

ファイルの変更を巻き戻したいときに巻き戻せるみんなの強い味方。

こちらも -p オプションが存在するので適宜活用していくと良さ。ちなみにブランチ移動もこのコマンドで行う。


# README.mdの差分を巻き戻す
$ git checkout README.md

# README.mdの一部差分を巻き戻す
$ git checkout -p

# masterブランチに移動
$ git checkout master

# 現在いるブランチをベースに新たなブランチを作成して移動
$ git checkout -b feature/update-readme

4つ目に記載した「-b」オプションは「git branch feature/update-readme」と「git checkout feature/update-readme」を合体させたようなコマンドで1つのコマンドでブランチ作成・移動をしてくれるので是非覚えておきましょう。

git diffで変更した差分の確認

git管理下にあるファイルの差分を表示するコマンド。

addしてある状態のファイルの差分は「–staged」というオプションを付けない表示されないので注意

また、上記にも記載したが「git管理下にあるファイルの差分」を表示するものなので、新規ファイルを追加してaddしていない状態だと表示されないのでここも注意。


# 変更した全てのファイルの差分を確認
$ git diff

# README.mdの差分を確認
$ git diff README.md

# addした状態のファイルの差分を確認
$ git diff --staged

git statusで追加、変更したファイルを確認

現在addしているファイルや差分が発生しているファイルを見る際に使用。


# 現在いるリポジトリの各ファイルの状態を確認
$ git status

実行例


MacBook-Air-2:first_project himakuro$ git status
On branch feature/implement-something
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    modified:   README.md

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   README.md

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    index.html

上記の見かたとしては下記のようになる

  • Changes to be committedにあるmodifiedはadd済みの変更差分
  • Changes not staged for commitにあるmodifiedは変更差分はあるがまだaddされていない状態
  • Untracked filesにあるindex.htmlは新規に追加されたファイルでまだaddされておらず、git管理されていない状態

git commitをして変更した内容をコミットしよう

github上に変更した内容をpushするために必要なコマンドでaddした内容をコミットという単位にまとめてくれます。

このコミットという単位で差分を巻き戻したり、別のブランチに持っていったりする事もあるので極力小さい単位でコミットを実行する癖をつけておきましょう。


#  メッセージを付けてcommit
$ git commit -m "update README.md"

git pushでコミットした内容をリモートにアップしよう

コミットした内容をリモート(githubにアップ)するためのコマンド。

コミットだけしてもその内容はgithub上にはアップされないのでコミットした内容は必ずプッシュしましょう。割とベテランの人でもコミットだけして満足してプッシュを忘れることがあったりします。


# feature/implement-somethingのブランチの内容をgithubにプッシュ
$git push origin feature/implement-something

git pullで他人が変更したファイルを落としてこよう

github上にある最新の情報を取得するために使うコマンド。

主に同じリポジトリで作業している人が何かしらの差分をpushした際に、その内容をローカル環境に取り込む時に利用。


# 最新のdevelopブランチの内容を取得
$ git pull origin develop

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です