#このページの目的
GitやGitHubを初心者視点でリポジトリの作成からちょっとした操作を
忘れないように書いておきたいと思ったため。
※勘違いしていたり調査不足で間違っていたら指摘してやってください。
三部構成で
- Gitの基本的な使い方 ここ
- 開発サイクル
- CONFLICT
を復習していきたいと考えております。
#事前準備
- GitHubにアカウントを作成していること
- Gitをインストールしていること
#環境確認
##バージョンの確認
Gitをインストールできているか確認と現在のバージョンを確認するために以下のコマンドをshellで打ちます。
##バージョンの更新
Gitを更新したい場合はインストールした方法によって異なる?と思いますので私がやった方法を紹介します。
Homebrewを使ってインストールしていました。
※https://news.mynavi.jp/article/20200418-1018783/ でGitの脆弱性が報告されていたので私のようにGitのバージョンが古い場合は更新しましょう。
###Homebrewを更新
[コマンド]
brew update
###Gitを更新
[コマンド]
brew upgrade git
git --version
#作業
##ローカルでディレクトリの作成
[コマンド]
mkdir git-test
作業用のディレクトリを作成するコマンド
cd git-test
作業用のディレクトリに移動するコマンド
pwd
現在のディレクトリの場所を表示するコマンド
##Authorの設定
AuthorとはGitでコミットした時に表示されるユーザ名とメールアドレス
簡単に言えばその表示名を決める みたいな感じです。
設定できていると自分のメールアドレスとユーザ名が表示されます。
[コマンド]
git config --global --list
[結果]
設定されていなくて
fatal: unable to read config file ‘/Users/h-miura/.gitconfig’: No such file or directory
と出た場合は以下のようにコマンドを打っていきます。
git config --global user.name {USEWR_NAME}
Authorのユーザ名を登録
git config --global user.email {MAIL}
Authorのメールアドレスを登録
git config --global --list
現在のAuthorを表示
作成したディレクトリをリポジトリとして作成する
作成したディレクトリ git-test/ の中で
[コマンド]
git init
現在のディレクトリをリポジトリにするコマンド
ls -la
リポジトリになると .git というファイルができているのでそれを確認するコマンド
トラッキング対象外の設定
GitHub上には載せたくないけどローカルで必要なディレクトリやファイルなどを記述すると変更があっても
コミットなどの時に無視される対象を設定できる。
[コマンド]
touch .gitignore
.gitignoreというファイルを作成だけする
ls -la
作成されたか確認
この .gitignore ファイルに追加するとaddやcommitの時に変更があっても無視されるようになる。
練習用のファイルを作成する
README.mdファイルを作り記述してファイルを作成します。
[コマンド]
vi README.md
viエディタを使ってファイルを作成して編集に入るコマンド
# git-test
と入力して
cat README.md
README.mdファイルの中身を確認するコマンド
Gitのステータスを確認
ファイルに変更があった場合 トラッキング対象ならば変更されたよってことを教えてくれる。
[コマンド]
git status
ステータスを確認するコマンド
トラッキング対象外を指定するファイル
今回編集したファイル
の2つを作成したのでこの2つが赤字で表示されている。
インデックスに追加する
[コマンド]
git add .gitignore
add コマンドを使って指定のファイルをインデックスに追加する
git add README.md
git status
現在のディレクトリで変更あったもの全てをインデックスに追加するコマンド
git add .
ローカルリポジトリに変更を記録
[コマンド]
git commit -m "created .gitignore README.md"
-mというオプションをつけると その後の文字列を変更内容として記述できる。 -mを付けないとエディタ画面に移動してそこで記述してセーブするようになる。
git branch
現在どこのブランチ(ローカルの作業場所みたいなもの)にいるかを確認する
git status
ログの確認
いつ誰がコミットしたのか などなどがわかる
[コマンド]
git log
ログの確認
git log --pretty=fuller
Author,Commiterの確認
コミット後のファイルを変更して差分などを確認する
README.mdを編集→差分確認→push を説明します。
[コマンド]
vi README.md
# git-test
aaaa
となるように 「aaaa」を追加
cat README.md
git diff README.md
変更したファイルの差分を確認する。 緑の文字で追加箇所が表示されている。
git status
README.mdに「aaaa」を追加したので、README.mdの変更が行われている。
addする前に変更を取り消したい場合(インデックスの登録を取り消す)
今回のREADME.mdへ「aaaa」の追加を取り消す場合
[コマンド]
git checkout README.md
cat README.md
git status
※Gitのバージョン2.23.0以降はgit restore README.md
でも良いらしい どっちも使える
編集して「aaaa」を入れたハズのREADME.mdがcommitした1つ前の状態に戻った。
変更が無かったことにされたので、ステータスも変化無しと表示される。
addした後の変更を取り消す
[コマンド]
vi README.md
# git-test
aabbcc
「aabbcc」を追加
cat README.md
git status
変更内容を確認
git add .
git status
addされたことを確認
git reset HEAD README.md
or git restore --staged README.md
(←2.23.0以降)
git status
addの変更が取り消されている。
addが取り消されただけなので、README.mdの追記は削除されていない。
commitの取り消し
先程add(indexに追加)を取り消したので、README.mdは編集されている。 これをローカルリポジトリに登録する。
そしてそのローカルリポジトリの登録を取り消す
[コマンド]
git status
現在のステータスを確認 addされていない
cat README.md
変更内容を再確認
git add .
ワーキングディレクトリからインデックスへ追加
git status
addされたことを確認
git commit -m "modify README.md"
インデックスからローカルリポジトリにメッセージを付けてコミット
git status
commitの確認
git log
commitされたことを確認
cat README.md
README.mdの確認
git reset --hard HEAD^
コミットの取り消し
cat README.md
ワーキングディレクトリの変更も全て消える。
git log
一番上のcommitが取り消された。
ローカルでの追加したり消したりの流れ
次回予告
次はGitHubを絡めて
issue -> branch -> add -> commit -> push、pull request -> merge
の開発サイクル
という流れを学んだのでそれを復習した記事にする予定です。