LoginSignup
12
10

More than 3 years have passed since last update.

Gitについて学んだこと

Last updated at Posted at 2020-09-02

[修正] 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作業の流れ

  1. git init:ローカルリポジトリを新規作成する
    init = initialize(初期化)の略
    リポジトリは倉庫みたいなもの
    これをすることで裏で .gitディレクトリ(設定ファイルとか)というものが作成されている

  2. git add ファイル名:ファイルを追加、ステージングにコミットする
    現在いるディレクトリ以下全て追加したい場合はgit add .
    ドットが現在いるディレクトリを表している

  3. git status:現在の変更状況を確認する
    ステージングされていないファイル(git add前)は赤色で表示される
    ステージングされたファイル(git add後)は緑色で表示される

  4. git commit -m "メッセージ":ステージングに追加したファイルをローカルリポジトリに記録する
    コミットメッセージは変更内容がわかるように書く(ファイル変更、新規作成、削除など)

ここまでがローカルでの流れ!

GitHubにプッシュするまでの流れ

  1. GitHub上でリモートリポジトリを作成する
    参考記事:
    【GitHub超初心者入門】この前初めてGitHubを使い始めたエンジニア見習いが書くGitHubの使い方と実践~とりあえず一緒に動かしてみようぜ!~

  2. git remote add origin リモートリポジトリURL:ローカルで作成したリポジトリとリモートのリポジトリを紐付ける

  3. 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 pullgit fetch (情報取得)git merge (取り込み) を合わせたもの

ファイルをバージョン管理から外す

コミットさせない(変更履歴に残さない)方法

セキュリティ的に漏れてはいけないファイル(パスワードが書かれているなど)がある時のために履歴に残さないようにできる

パターン1
  1. .gitignoreファイルを作業ディレクトリに作成
  2. .gitignoreファイルに除外したいファイル名を記述する
パターン2

git ignore.io でフレームワークを入力すると、適切な.gitignoreファイルが作成できるのでそれをコピペ

すでにコミット済みのファイルを削除する

git rm ファイル名 removeの略。 ファイルごと削除
git rm -r ディレクトリ名 ディレクトリごと削除
git rm --cached ファイル名 ファイルは残す


参考にさせて頂いた記事

12
10
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
12
10