LoginSignup
2
1

More than 5 years have passed since last update.

Git基礎 基本コマンド

Posted at

Gitとは

  • ファイルのバージョンを管理するために用いる

ローカルは3つのエリアに分かれている

  • ワークツリー (ファイルを変更する作業場)

↓ git add 追加

  • ステージ (コミットする変更を準備)

↓ git commit コミット

  • リポジトリ (スナップショットを記録)

Gitのデータ構造のまとめ

  • リポジトリに「圧縮ファイル」 「ツリー」 「コミット」 ファイルを作成することでデータを保存している
  • コミットが親コミットを持っているので変更履歴を辿れる
  • Gitの本質はデータを圧縮して、スナップショットで保存していること

基本コマンド

git add

ステージングに追加

  • git add [ファイル名]
  • git add .   (すべての変更を追加)

git commit

リポジトリに追加  → いつ誰がなんのために追加したのかの情報がついてくる

  • git commit
  • git commit -m "メッセージ"
  • git commit -v  (変更したコードの内容も見える)

commit メッセージの書き方

  • 簡単に書くとき

    • 一行で簡潔に書く
  • 正式に書くとき (チームでコードを書くなら)

    • 1行目 変更内容の要約
    • 2行目 空行
    • 3行目 変更した理由
  • プレフィックスをつける (レビューがやりやすい)

git status

  • 主にgit add, git commit 前に確認する
  • 変更されたファイルを確認してくれるコマンド

git diff

どんな変更をしたのか確認をするコマンド

  • git add 前に行う
    • git diff
    • git diff <ファイル名>
  • git add 後に行う
    • git diff --staged

git log

変更履歴を確認する

git logを実装したらqで元に戻れる

  • git log
  • git log --oneline

    • 一行で変更履歴を表示する
  • git log -p <ファイル名>

    • ファイルの変更差分を表示する
  • git log -n <コミット数>

    • 表示するコミット数を制限する

git rm <ファイル名>

ファイルの削除を記録

  • リポジトリとローカルのファイルごと削除

    • git re <ファイル名>
    • git re -r <ディレクトリ名>
  • リポジトリのファイルだけ削除

    • git rm --cached <ファイル名>

git push

ローカルリポジトリの内容をリモートリポジトリに送る

  • git push <リモート名> <ブランチ名>

コマンドにエイリアスはつけるべき

付けておくと入力が楽になる

  • git config --global alias.ci commit
  • git config --global alias.st status
  • git config --global alias.br branch
  • git config --global alias.co checkout

上記のコマンドで

  • git commit = git ci
  • git status = git st
  • git branch = git br
  • git checkout = git co

と同じ意味になる

ワークツリーのファイルへの変更を取り消す

  • git checkout -- <ファイル名>
  • git checkout -- <ディレクトリ名> // 全変更を取り消す
  • git checkout --

 ステージした変更を取り消す

  • git reset HEAD <ファイル名>
  • git reset HEAD <ディレクトリ名> // 全変更を取り消す
  • git reset HEAD .

HEAD = 最新のコミット

直前のコミットをやり直す

  • git commit --amend
  • git reset --soft HEAD^

リモートリポジトリを新規追加する

  • git remote add <リモート名> <リモートURL>

リモートから情報を取得する (フェッチ)

  • git fetch <リモート名>

リモートから情報を取得してマージする(pull)

  • git pull <リモート名> <ブランチ名>

これは下記コマンドと同じこと

  • git fetch <リモート名> <ブランチ名>
  • git merge <リモート名> <ブランチ名>
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1