0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

情報系大学院生なのにGithubが使えない男の備忘録 #2

Posted at

はじめに

こちら 『情報系大学院生なのに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の情報が保管されることになるとな
スクリーンショット 2025-10-03 23.51.47.png

次に、リポジトリの状態を確認

git status

確認すると、test.mdUntraced filesとなっていることがわかる。test.mdは作りたてなのでそりゃそう
スクリーンショット 2025-10-03 23.54.29.png

次は、ステージングエリアに登録してみる

git add test.md

確認してみると、new fileとしてステージングエリアに登録されていることがわかる。
スクリーンショット 2025-10-04 0.06.01.png

そして、そのままコミットしてみる。

git commit test.md

すると、VSCが開かれる(git config --global core.editor "code --wait"を設定しているので)。ここでは、コミットメッセージを記入する。1行目には、要約(タイトル)を記入し、3行目以降に詳細を書くらしいぞ

スクリーンショット 2025-10-04 0.12.05.png
スクリーンショット 2025-10-04 0.14.05.png
スクリーンショット 2025-10-04 0.18.12.png

例のごとく、リポジトリの状態を確認すると、無事にコミットされたことがわかる。また、ログを確認するとコミット内容がわかる。
スクリーンショット 2025-10-04 0.19.26.png
スクリーンショット 2025-10-04 0.22.10.png

ここまでで、ワークツリーからコミットするまでの流れが確認できたぞー

他のコマンドも試してみよー

git diff

diffで差分を確認してみる。なので、test.mdを編集する。

##ステージングエリアに登録
git add test.md

##ファイルを変数
vim test.md
>#Gitメモ
>##Gitコマンド
>ステージングエリアとの差分を確認
>git diff

この状態で、差分を表示する。

git diff

すると以下のように、編集して追加した箇所が緑色で表示されていることがわかる。
スクリーンショット 2025-10-04 0.32.38.png

そして、addでワーキングツリーに登録して、以前コミットしたものとの差分を確認する。

git diff --cached

スクリーンショット 2025-10-04 0.43.02.png

git restore

次は、登録を取り消してみる。
まず、ファイルを編集する。

##ファイルを編集
vim test.md
>#Gitメモ
>##Gitコマンド
>ステージングエリアとの差分を確認
>git diff
>
>登録を取り消してみる
>git restore

##ワーキングスペースに登録
git add

##ファイルを編集(追加したやつを消す)
>#Gitメモ
>##Gitコマンド
>ステージングエリアとの差分を確認
>git diff

diffで差分を確認してみる。すると、以下のような状態となることが確認できる。
スクリーンショット 2025-10-04 0.56.34.png

この状態で、ステージングエリアに登録を取り消し、ファイルの状態をadd前に戻す。

git restore test.md

ファイルの状態をcatなどで確認すると、add前の状態に戻っていることがわかる。
スクリーンショット 2025-10-04 1.00.10.png

次に、gitディレクトリに登録されている状態をステージングツリーに適用してみる。

まず、現在のgitディレクトリとステージングツリーとの差分を確認
スクリーンショット 2025-10-04 1.23.59.png
(コミットは最初の一回しかしてないから当然)

この状態で、restoreを適用してみる。

git restore --staged test.md

##ワークツリーとステージングツリーとの差分を確認
git diff

##状態を確認
git status

確認すると、現在の状態がステージングエリアに登録されていないことがわかるのと、ワークツリーとステージングツリーとで差分が取れていることもわかる。
スクリーンショット 2025-10-04 1.27.38.png

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としてステージングエリアに登録されていることがわかる。
スクリーンショット 2025-10-04 2.51.24.png

そして、この状態でコミットする。すると、削除したことをコミットしたことが通知される。

git commit "remove.txtを削除する" remove.txt

スクリーンショット 2025-10-04 2.53.20.png

.gitnore ファイルで管理しないファイルを設定

.gitnore ファイルを作成することで、他人に共有したくないファイルを設定することができるらしい。あとは、DS_Storeなどの共有不要なファイルも設定できるとのこと。

## .gitnoreファイルを作成
touch .gitnore

## 共有したくないファイルを作成
touch sample.txt

## .gitignoreを編集
vim .gitignore
>./sample.txt

この状態で、リポジトリの状態を確認する。すると、sample.txtが表示されていないことがわかる。つまり、git管理にいないということ。

git status

スクリーンショット 2025-10-04 3.06.00.png

git logでコミットの履歴を確認

早速試してみる。実行すると、新しいもの順に、「ハッシュ値」「誰がコミットしたか」「日時」「メッセージ」などが表示される。

git log

(画像載せようと思ったが、ガチのgmail登録してたのでgit logの掲載は無しでー)

また、VSCでもログをいい感じに表示してくれる。いいね

スクリーンショット 2025-10-04 3.16.41.png

おわりに

とりあえず、Chapter3までやりました〜
次は、いよいよGitHub編に移りたいと思います〜
ではでは👋

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?