はじめに
こちら 『情報系大学院生なのにGithubが使えない男の備忘録 #1』の続きです。
前回は、座学でしたが今回から実践となります。わーい。
ということでやっていきますかー!
Gitの設定をする「git config」
Gitの設定にはgit configコマンドが使用される。そんで、--globalオプションを付けることで、.gitconfigなるファイルに設定が保存される。
##設定コマンド
git config --global [設定項目名] [設定値]
##設定値を確認するコマンド
git config --list
##特定の設定値を確認する
git conifg [設定項目名]
ユーザ名とメアドを設定
ユーザ名とメールアドレスを設定することで、コミット時に情報が登録されて誰がコミットしたかを判別することが可能となる。
##ユーザ名の設定
git config --global user.name [ユーザ名]
##メールアドレス
git config --global user.email [メールアドレス]
利用エディターを設定
ここでは、エディターとしてVS Code利用するように設定します。
## VS Codeを指定
git config --global core.editor "code --wait"
## VSCではなくvimを指定する場合
git config --global core.editor vim
設定を削除する場合
git config --global --unset [設定項目名]
デフォルトブランチ名をmainに変更する
ここでは、リポジトリを作成されうと同時に作成される最初のブランチをデフォルトブランチというらしい。そんで、初期の名前が「master」なのだが、現在は「main」が一般的とのこと。
##デフォルトブランチ名の変更
git config --global init.defaultBranch main
なぜ、変わったのかなぁと思って調べたら人権問題が関わってるとかー、Master/Slave 確かに、、、
ファイルのバージョン管理
ローカルリポジトリの操作
主に以下のコマンドを使用する感じらしい。(もっと、色々あるのだろうがとりあえず)
一旦、まとめておくー
##リポジトリを作成する
git init
##ワークツリー => ステージングエリア
git add [ファイル名/ディレクトリ名]
##ステージングエリア => gifディレクトリ
git commit [ファイル名ディレクトリ名]
##リポジトリの状態確認
git status
##各エリアの差分
git diff
##ステージングエリア => ワークツリー
git restore
##gifディレクトリ => ステージングエリア
git restore --staged
やはり、まとめているだけではわかんないので、
実際にやっていくぞー
まず準備
##ディレクトリ作成
mkdir -p いちばんやさしいGit&GitHubの教本/Chapter3
cd いちばんやさしいGit&GitHubの教本/Chapter3
##ファイル作成
touch test.md
##ファイル編集
vim test.md
> #Gitメモ
これで一応の準備を完了。ここからは、gitコマンドを使いながらtest.mdのバージョン管理を行なっていくぞ
※ターミナルのユーザ名の部分はPROMPT='%1~ %# 'で非表示にしています。
まず、Chapter3にローカルリポジトリを作成する。
git init
la -aで確認すると、.gitが作成されていることがわかる。ここにGitの情報が保管されることになるとな

次に、リポジトリの状態を確認
git status
確認すると、test.mdがUntraced filesとなっていることがわかる。test.mdは作りたてなのでそりゃそう

次は、ステージングエリアに登録してみる
git add test.md
確認してみると、new fileとしてステージングエリアに登録されていることがわかる。

そして、そのままコミットしてみる。
git commit test.md
すると、VSCが開かれる(git config --global core.editor "code --wait"を設定しているので)。ここでは、コミットメッセージを記入する。1行目には、要約(タイトル)を記入し、3行目以降に詳細を書くらしいぞ
例のごとく、リポジトリの状態を確認すると、無事にコミットされたことがわかる。また、ログを確認するとコミット内容がわかる。


ここまでで、ワークツリーからコミットするまでの流れが確認できたぞー
他のコマンドも試してみよー
git diff
diffで差分を確認してみる。なので、test.mdを編集する。
##ステージングエリアに登録
git add test.md
##ファイルを変数
vim test.md
>#Gitメモ
>##Gitコマンド
>ステージングエリアとの差分を確認
>git diff
この状態で、差分を表示する。
git diff
すると以下のように、編集して追加した箇所が緑色で表示されていることがわかる。

そして、addでワーキングツリーに登録して、以前コミットしたものとの差分を確認する。
git diff --cached
git restore
次は、登録を取り消してみる。
まず、ファイルを編集する。
##ファイルを編集
vim test.md
>#Gitメモ
>##Gitコマンド
>ステージングエリアとの差分を確認
>git diff
>
>登録を取り消してみる
>git restore
##ワーキングスペースに登録
git add
##ファイルを編集(追加したやつを消す)
>#Gitメモ
>##Gitコマンド
>ステージングエリアとの差分を確認
>git diff
diffで差分を確認してみる。すると、以下のような状態となることが確認できる。

この状態で、ステージングエリアに登録を取り消し、ファイルの状態をadd前に戻す。
git restore test.md
ファイルの状態をcatなどで確認すると、add前の状態に戻っていることがわかる。

次に、gitディレクトリに登録されている状態をステージングツリーに適用してみる。
まず、現在のgitディレクトリとステージングツリーとの差分を確認

(コミットは最初の一回しかしてないから当然)
この状態で、restoreを適用してみる。
git restore --staged test.md
##ワークツリーとステージングツリーとの差分を確認
git diff
##状態を確認
git status
確認すると、現在の状態がステージングエリアに登録されていないことがわかるのと、ワークツリーとステージングツリーとで差分が取れていることもわかる。

git rm
次は、git管理下にあるファイルを削除してみる。
まず、削除用のファイルを作成する。そして、作成したファイルをコミットする。
##ファイル作成
touch remove.txt
##ステージングエリアに登録
git add remove.txt
##コミット
git commit -m "削除用のファイルを作成した" remove.txt
git rmではなくて、普通にrmで良いのではないかと思ってrmで消してみたが、すでにgit管理下にあるからgit restore remove.txtでもとに戻るのねー
ということで、gitコマンドでファイルを消してみる
git rm remove.txt
lsで無事にファイルが消えていることが確認できる。そして、リポジトリの状態を見るとdeleteとしてステージングエリアに登録されていることがわかる。

そして、この状態でコミットする。すると、削除したことをコミットしたことが通知される。
git commit "remove.txtを削除する" remove.txt
.gitnore ファイルで管理しないファイルを設定
.gitnore ファイルを作成することで、他人に共有したくないファイルを設定することができるらしい。あとは、DS_Storeなどの共有不要なファイルも設定できるとのこと。
## .gitnoreファイルを作成
touch .gitnore
## 共有したくないファイルを作成
touch sample.txt
## .gitignoreを編集
vim .gitignore
>./sample.txt
この状態で、リポジトリの状態を確認する。すると、sample.txtが表示されていないことがわかる。つまり、git管理にいないということ。
git status
git logでコミットの履歴を確認
早速試してみる。実行すると、新しいもの順に、「ハッシュ値」「誰がコミットしたか」「日時」「メッセージ」などが表示される。
git log
(画像載せようと思ったが、ガチのgmail登録してたのでgit logの掲載は無しでー)
また、VSCでもログをいい感じに表示してくれる。いいね
おわりに
とりあえず、Chapter3までやりました〜
次は、いよいよGitHub編に移りたいと思います〜
ではでは👋






