Shota Yamaguchi

Rails勉強中

Gitってなにもの?

gitとは

ファイルのバージョンを管理するためのもの

gitのリポジトリとは

ファイルやディレクトリの変更や状態を記録する場所のこと。
Gitのリポジトリにはローカルリポジトリリモートリポジトリの2種類がある。

  • ローカルリポジトリ
    ローカルとは自分のパソコンのことをいい、個人のパソコン上でファイルやディレクトリの変更履歴を記録する場所。

  • リモートリポジトリ
    Githubなどのオンライン上でファイルやディレクトリの変更履歴を記録する場所。

Gitの流れ

Gitはいきなりローカルリポジトリやリモートリポジトリに変更を記録するのではなく、以下のような手順をおこなう。

  1. 手元のワークツリー(作業場)でコードを変更する
  2. ファイルの変更をステージングエリア(変更をする準備をおこなう場所)へ追加する
  3. ローカルリポジトリコミットする
  4. リモートリポジトリにプッシュする

f:id:hakube:20201203011059p:plain

Gitコマンド

1. git init

$ git init

git initコマンドで.gitディレクトリが作成され、この.gitディレクトリに変更履歴を記録する。

2. git add

$ git add "ファイル名"

ファイル名を指定してステージングエリアへ追加する。

3. git commit

$ git commit -m "メッセージ"

メッセージを付け加えてローカルリポジトリに変更を記録する。

$ git commit --amend

直前のコミットを修正できる。
※リモートリポジトリにpushをしたコミットには絶対このコマンドつかってはいけない。

4.git status

$ git status

変更したファイルを表示する

5. git diff

$ git diff 

ワークツリーとステージングエリアの変更の差異を確認する。

$ git diff --staged

ステージングエリアとリポジトリの変更差異を確認する。

6. git log

$ git log

変更履歴を確認する
変更内容をみたい場合は後ろに-pをつけ、終了するときはQキーをおす。

7. git push

$ git push origin master

あらかじめ$ git remote add origin (GitHubなどのURL)によって登録しておくことで簡単にリモートリポジトリへpushできる。

8. git pull

$ git pull origin master

リモートからファイルをダウンロードすることができる。

9. git checkout

$ git checkout --"ディレクトリ名orファイル名"

このコマンドはステージングエリアに記録された情報をもとにファイルの変更を取り消すことができる。

10. git reset

$ git reset HEAD "ファイル名orディレクトリ名"

リモートリポジトリに記録された情報をもとにステージングエリアの変更情報を取り消す。 ステージングエリアの情報を取り消すだけなので、$ git checkoutしなければワークツリーの情報はかき変わらない。

Gitにコミットさせない方法

パスワードが記録されているファイルや自動生成された変更を記録する必要のないファイルは.gitignoreファイルを作成して、そこにバージョン管理をしたくないファイルを転記することで、バージョン管理がされなくなる。