[修正] 2020.9.2
間違った理解をしていましたので、いくつか修正しています
はじめに
Gitについてインストールからはじめ学んだことを自分用のメモとして残していきます。
また、新しく勉強したら そこも随時更新していきたいと思います。
(間違っているところがありましたらご指摘いただけると幸いです!)
Gitとは?
Gitはバージョンを管理してくれるシステムのこと。
- ファイルの過去の変更履歴を見れる
- 変更してから変更前に戻したいなーって時は戻って復元できる
- 共同開発するときには大元から枝分かれさせて各々で作業ができ、後から作業内容を統合できる
(=同じ場所を同時に編集していて、それに気づかずファイルを上書き!ってことを防げる)
などなど複数人で作業するときにより便利となってくる模様
Gitをインストールする
まずこちらのサイトを見ながら(Gitをセットアップするの部分)Gitをインストール
↓
私のmacに command line toolというものが まだ入っていないことが判明
command line toolとは、キーボードを使い命令を入力して操作するツールのこと
マウスなども使える直感的で分かりやすいアプリケーション(wordやsafariなど)と区別して、前者はCUI(Character User Interface)、後者はGUI(Graphical User Interface)と分類される
↓
command line toolを インストール
参考記事:
Xcodeをインストールせずに、Command Line Toolsをインストールする方法
↓
Gitインストール完了!
補足
自分の名前とメールアドレスをGitに登録しておく
git config --global user.name 名前
git config --global user.email メールアドレス
これでコミットするときにコミット内容と一緒に名前とアドレスがローカルリポジトリに書き込まれる
逆に登録していなければコミットできないので登録必須
Git作業の流れ
git init
:ローカルリポジトリを新規作成する
init = initialize(初期化)の略
リポジトリは倉庫みたいなもの
これをすることで裏で .gitディレクトリ(設定ファイルとか)というものが作成されているgit add ファイル名
:ファイルを追加、ステージングにコミットする
現在いるディレクトリ以下全て追加したい場合はgit add .
ドットが現在いるディレクトリを表しているgit status
:現在の変更状況を確認する
ステージングされていないファイル(git add前)は赤色で表示される
ステージングされたファイル(git add後)は緑色で表示されるgit commit -m "メッセージ"
:ステージングに追加したファイルをローカルリポジトリに記録する
コミットメッセージは変更内容がわかるように書く(ファイル変更、新規作成、削除など)
ここまでがローカルでの流れ!
GitHubにプッシュするまでの流れ
GitHub上でリモートリポジトリを作成する
参考記事:
【GitHub超初心者入門】この前初めてGitHubを使い始めたエンジニア見習いが書くGitHubの使い方と実践~とりあえず一緒に動かしてみようぜ!~git remote add origin リモートリポジトリURL
:ローカルで作成したリポジトリとリモートのリポジトリを紐付けるgit push origin master
:ローカルリポジトリをリモートリポジトリ(GitHub)に送信(プッシュ)する
GitHubにプッシュ完了!
Gitコマンド
現在のディレクトリ内を表示する
ls
listの略。
ディレクトリに何が入っているか確認できる
→こちらはGitコマンドではなくLinuxコマンドでした
隠しディレクトリ(.gitディレクトリ)を表示する
ls -a
→Linuxコマンド
今までの変更履歴を一覧で表示
git log
誰がいつ何を変更したのか確認できる
git addする前の変更分を見る
git diff ファイル名
differenceの略。
git addした後の変更分を見る
git diff --cached ファイル名
ファイル名を書かなかった場合は、修正したファイル全部の内容を見ることができる
現在持っているブランチを確認する
git branch
デフォルトで「master」ブランチが用意されるので、最初は*
masterと表示される
(*
は現在いる場所を表す)
git branch -a
全てのブランチを表示する
ブランチについて 参考記事:
図解! Gitのブランチ・ツリーをちゃんと読む
ブランチを新しく作成
git checkout -b 好きなブランチ名
→ブランチ作成のみの場合、正しくは git branch ブランチ名
ブランチを作成+そのブランチに移動
git checkout -b ブランチ名
(上記と認識違いをしていたので修正)
ブランチを切り替える
git checkout 切り替えたい先のブランチ名
ブランチにマージする
git merge マージ先のブランチ名
マージとはブランチ 'A' にブランチ 'B' の変更を取り込むこと
'A' にいる状態で、'git merge B' とすると 'B' の変更分が 'A' に取り込まれる
ブランチ切り替え以外で使えるcheckout
git checkout コミットハッシュ 対象のファイル名
対象ファイルをコミットハッシュ時の状態に戻せる
git checkout ステージング追加前のファイル
ステージング前(git add前)なら変更を元に戻せる
補足
ステージング後(git add後)の場合はcheckoutが使えないので
git reset ステージング追加後のファイル
を使う
コミット履歴を消す
git reset コミットハッシュ
コミットハッシュとはそれぞれのコミットに割り振られたID番号のこと
(指定したコミットハッシュ以降の) コミット履歴は消えるが、自分のファイルでの変更内容は残ったまま
git reset --hard コミットハッシュ
変更内容も全て消える
※ git reset はチーム開発では基本的に使わない(メンバーのコミット履歴と不整合が起きるため)
変更を行う前に戻す
git revert コミットハッシュ
(指定したコミットハッシュの)変更を行う(一つ)前の状態に戻せる
例えばファイルを新規作成をしていたのなら、ファイルを削除
コードを修正していたのなら、修正前に戻せる
git revert --abort
revertを取り消す
指定したコミットハッシュ時のファイル内容を見る
git show コミットハッシュ:ファイル名
リモートリポジトリの最新状態をローカルに反映させる
git pull origin master
共同作業では他の誰かがmasterブランチを更新していることもあるので、プルして情報を取得する
git pull
は git fetch (情報取得)
と git merge (取り込み)
を合わせたもの
ファイルをバージョン管理から外す
コミットさせない(変更履歴に残さない)方法
セキュリティ的に漏れてはいけないファイル(パスワードが書かれているなど)がある時のために履歴に残さないようにできる
パターン1
-
.gitignore
ファイルを作業ディレクトリに作成 -
.gitignore
ファイルに除外したいファイル名を記述する
パターン2
git ignore.io でフレームワークを入力すると、適切な.gitignoreファイルが作成できるのでそれをコピペ
すでにコミット済みのファイルを削除する
git rm ファイル名
removeの略。 ファイルごと削除
git rm -r ディレクトリ名
ディレクトリごと削除
git rm --cached ファイル名
ファイルは残す
参考にさせて頂いた記事
Gitでやりたいこと、ここで見つかる
https://qiita.com/shimotaroo/items/b73d896ace10894fd290【Git】新人エンジニア、git pushまでの道
https://qiita.com/yukibe/items/9ef9d54f2e7d53cfb51c