🧚

Git入門

2023/01/18に公開

環境構築をしよう

gitのバージョンを確認する

git --version

名前を設定する

git config --global user.name "名前"

メールアドレスを設定する

git config --global user.email "メールアドレス"

gitで使用するテキストエディタを設定

git config --global core.editor 'vim -c "set fenc=utf8"'

φ(・
日本語が文字化けしないよう、 文字コードとしてutf8を指定
デフォルトではnanoというテキストエディタを使う設定になっているが
日本ではどちらかというとマイナーなのでvimというよく使われるエディタを設定!!

gitのデフォルトブランチ名にmainを設定

git config --global init.defaultBranch main

Branchとは
ざっくりいうと、ソースコードの作業履歴を枝分かれさせて記録していくためのもの

設定ファイルを確認

less ~/.gitconfig

.gitconfigに設定が書かれている
lessはテキストファイルの内容を閲覧するためのコマンド
確認ができたらqキーを押して終了

フォルダの作成
デスクトップにgit_basics(任意の名前)で作成
VSCで開く
このフォルダにローカルリポジトリを作成していく

.gitignoreを設定しよう

.gitignoreとは
gitでバージョン管理対象外とするファイルや、ディレクトリを指定することができる

具体例

  • macOS:.DS_Store
  • Windows:Thumbs.db

φ(・
OSが作る隠しファイルが代表例
ソフトウェア開発には不要なファイル邪魔なファイルはgitで管理対象外とすることで見通しが良くなる

.gitignoreの設定について

  • 時代背景などによってトレンドがあり、1つの正解はない
  • ベーシックな設定方法の1つを紹介

よくある.gitignoreの設定の粒度

  • 共通設定(global)
  • 各リポジトリ毎の設定(各開発プロジェクト毎の設定)

φ(・
共通設定の方にはOSが作る隠しファイルなどを除外する設定をする!
各リポジトリ毎の設定には、各プロジェクトごとに異なる設定をする!
使うフレームワークによって異なる

共通設定の方法

設定ファイルGitHub公式のテンプレートを使う
https://github.com/github/gitignore/blob/main/Global/macOS.gitignore

設定ファイルの配置場所についてはデフォルト設定として使われる

~/.config/git/ignore

このパスのファイルに記述する

どこに共通設定に関するファイルを配置するかは意見が分かれるところ
他の場所に書くこともできる!!

ディレクトリを作成

mkdir -p ~/.config/git

テキストエディタのvimで新規に設定ファイルを作成し編集

vim ~/.config/git/ignore

vimが開く

iキーを押して入力モードにする

GitHub公式のテンプレートを開き、
Rawボタンを押してテキスト表示させて1番上にコピペ

escキー、:、wキー、qキー
enter(return)押す

これで設定が完了!!

リポジトリの初期化をしよう

あるディレクトリを gitで管理するにはまず初期化をする必要がある!

手順について

リポジトリを作成するディレクトリであるgit_basicsディレクトリが
カレントディレクトリ(現在のディレクトリ)となっている

  1. tutorialというディレクトリを作成
    mkdir tutorial

  2. tutorialの中へ移動
    cd tutorial
    tutorialがカレントディレクトリになる

  3. リポジトリを作成したいリポジトリでgit initコマンドを使う
    gitリポジトリの新規作成をする場合、
    git initコマンドを使う(git initializeの略)
    空のgitリポジトリが作成される

gitによる管理はプロジェクトディレクトリごとに行う!!
tutorialディレクトリでinitをすると、
tutorialディレクトリ配下のファイルやディレクトリがgitのバージョン管理対象となる!

コミットをしよう

コミットまでの一連の操作を実行できるようになる

  • git statusコマンド
  • git addコマンド
  • git commitコマンド

実際に操作してみよう

tutorialがカレントディレクトリ
新規にファイルを作成

touch a.js

tutorialディレクトリ配下にa.jsファイルが作成される

a.jsファイルを開いて編集

console.log('A');

ファイルを保存する

リポジトリの状態を確認

git status
On branch main(現在はmainという名のbranchにいるということ)

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        a.js
(いま作業しているファイルとしてa.jsがあるが未追跡であるということ)
(gitリポジトリのワーキングツリーにファイルを作成しただけではgitのリポジトリのバージョン管理の対象として登録されていない)

nothing added to commit but untracked files present (use "git add" to track)

英語のメッセージ、グーグル翻訳を使ってちゃんと読むこと!!

a.jsをgitリポジトリの管理対象とするために
git addコマンドを利用してステージ領域と呼ばれる場所にファイルを登録

git add a.js

ステージ領域とは
commitをする前の一時領域のこと

git statusで状態を確認すると

On branch main

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   a.js

a.jsがgitリポジトリの管理対象となったので、
commitされる予定の変更内容に
新しいファイルとしてa.jsが表示されている!

git commitコマンドを使って
ステージ領域に登録されている時点のファイル群をローカルリポジトリに登録する

git commit -m "first commit"

-mオプションに続いてcommit内容の要約であるコミットメッセージを書く

⚠️あとで見返したときにわかる内容にする⚠️
時間が経つとなんのcommitか忘れてしまうものなので、
後で見返したときにわかりやすいように書く!
日本語を使うことをOKとしている開発プロジェクトもあるので指示に従う

git statusで状態を確認

On branch main
nothing to commit, working tree clean

現在のワーキングツリーの状態はcommitされている最新の状態から変更がないということ
(ローカルリポジトリの内容とワーキングツリーの内容が一緒である)

ログの確認をしよう

git log コマンド
リポジトリにコミットしたログの確認ができる

git log

先ほどのcommitが表示される
commitの後ろに表示されている文字列はこのcommitを指し示すハッシュ
(commitを指し示すID)
Authorの欄にはgitの初期設定で登録したユーザー名とメールアドレスが記録されている
Dateに日時、commitメッセージが表示されている
ログを見ると誰がいつ操作をしたかを確認できる仕組みになっている

commit e555264d4065a7c52fc632330569b89727f728d9 (HEAD -> main)
Author: saya <ー@gmail.com>
Date:   Wed Jan 18 22:22:12 2023 +0900

    first commit

指定したファイルやディレクトリのログを確認するには

git log -p

差分が表示される

特定のファイルだけにすることもできる

git log -p a.js

差分を表示したいファイルを指定
a.jsに関してだけの差分が確認できる!

差分の確認をしよう

ワーキングツリー、ステージ領域、最新コミット間の差分を確認できる
git diffコマンド

最新のコミット(前回のコミット)HEADとの差分を確認する

git diff HEAD

キリのいいところまでやりたかったけど、今日はここまで!
今日は早く退勤できて、いつもより時間かけ勉強できたから満足😌
明日が個人的に山場だから、今週ラストスパート頑張ろう!
パワーーー

Discussion