Learning to Code

プログラミング勉強記録

基本のGitコマンド

・Gitとは

Gitはバージョン管理システムVCS)の一種。

管理対象にしたファイルについては、元ファイルからの変更点をGitが全て記録し、バージョンごとに保存しておいてくれる。

こう言うとなんだかイメージがわかないが、要はゲームのセーブポイントみたいなもの。 例えばレベル1でセーブして、レベル20まであげて再度セーブする場合、 Gitはレベル1のデータも、レベル20時点でのデータも両方とっておいてくれる。

しかも、他のプレイヤーのセーブデータと合体させて1つのデータを作ることが出来る。 攻略が早くなるし、苦手なダンジョンを他の人にクリアしてもらえるというような利点もある。 ※これらの機能はこの本記事では扱わない。

・Gitの仕組み

仕組みが少しややこしい。Gitには次の3つの階層がある。

①作業ディレクトリ/ ファイルの編集をする

②ステージングエリア/ コミットの前段階

③レポジトリ/ コミットされた変更済みのファイルが保存される

セーブデータを作ることを、「コミット」という。 Gitがインストールされており登録を済ませていれば、ターミナル上でコマンドを入力してコミットができる。 ただし、ディレクトリごとにレポジトリが作られていないといけないし、 保存したいファイルがステージングエリアに追加されていなければいけない。

・Gitのコマンド 基礎編
  • git init

Gitのレポジトリを新しく作る

  • git status 

作業ディレクトリとステージングエリアの状態を確認する (ステージングエリアに追加されていないファイルがあればここで表示される)

  • git add(ファイル名)

作業ディレクトリからステージングエリアにファイルを追加する

  • git diff 

作業ディレクトリとステージングエリアの違いを確認する(どんな変更がされたか)

  • git commit 

ファイルの変更をステージングエリアからレポジトリに保存する(この状態で初めてセーブされる)

実際にコミットする際は-mをつけてコミットメッセージをつける。

git commit -m "Add foo to bar"という感じ。他にもオプション多数

  • git log

過去のコミットのログを見る

・Gitのコマンド リセット編
  • git checkout HEAD (ファイル名)

ファイルが"names.txt"だったら"git checkout HEAD names.txt"とコマンドを入力する。 作業ディレクトリでファイルを編集中に、まだ変更がステージングエリアに追加されていなければ、 このコマンドで前回のコミット時点のファイルに戻すことが出来る。

  • git reset HEAD (ファイル名)

git add済でファイルがステージングエリアに追加されていても、このコマンドで 取り消しできる。変更点は元には戻らないが、とりあえずステージングエリアから外してしまえば間違ってコミットしてしまうことはない。

  • git reset commit (コミット識別番号の最初の7文字)

コミットをするとこんなメッセージが出る。

commit d640dc3b22b3ee1d0a6e87477a35fd5e75c0712e

Author: learningtocode

Date: Thu Nov 7 16:19:17 2017 -0500

Add foo to bar.rb

1行目の番号がコミット識別番号。最初の7桁はこの場合だと「d640dc3」。 例えば5回コミットをしていて、2回目のコミット時点まで戻りたいとなった場合、 2回目のコミット識別番号を使ってこのコマンドを入力すれば戻れる。 その場合、3・4・5回目のコミットは削除されるので注意。

以下のサイトも分かりやすく大変勉強になる。というか圧倒的にきちんと解説されています。

backlog.com