💬

今更ながらのGit再入門~Gitを触る準備編~

2023/05/08に公開

ふわっとGitについて認識してましたが、改めて理解しないとまずいかなという意味合いが強いですが、改めて勉強しなおそうと思い連載始めます。どなたかの一助になれば幸いです。

そもそもGitって何?

Gitとはバージョン管理システムのことで、ファイルの編集履歴を追跡し、過去のバージョンに戻ったり、変更を比較したりすることができます。

Gitを使うと、複数の人が同じファイルを編集する場合でも、誰がどの変更を行ったかを追跡することができます。つまり、変更前と変更後の差分を保存し、必要なときにどのように変更されたかを復元することができます。

Gitを使う際に、理解し直したい内容

Gitを使う際に、書籍など読んでもつまずくため、まずは覚えたい用語関連を簡単に紹介します。

  • ワークツリー:フォルダなどの作業場
  • リポジトリ:ファイルなどの保管先
    • ローカルリポジトリー:自分のパソコンなど置き場
    • リモートリポジトリー:GitHubなどのリモートの保管先
  • コミット:スナップショットを保存
  • ステージ:一時保管先で変更分だけ一時的に保管

実際の用語を当てはめてGit操作でファイルの操作などの流れは、次のようなシーケンスになります。

Gitのワークツリー構成

Gitの操作をするうえでどこに何を保存するかなど考えた方がよいため、ワークツリーの構成を
以下のようします。

git-local-repo/ ←ここをローカルリポジトリのメインとする
 |-testA/
   |-testfile
 |-testB/

Gitのリモートリポジトリの設定

git commit先のリモートリポジトリを作成します。今回はGitHubをリモートリポジトリーとして、GitHubのアカウントが作成済みの状態で開始します。

  1. GitHubにログイン後、左側のCreate repositoryをクリックします。

  1. リポジトリー名を指定し、Pravateを選択後Create repositoryをクリックします。

Git-secretsのアクセストークン作成

git pushする際の認証時ID/PW認証のサポートが終了しているため、Github側でアクセストークンを作成します。

  1. Githubから右上の設定を選択します。

  1. 左ペインの左下にある開発者設定をクリックします。

  1. 個人用アクセストークン>トークンの順に選択し、新しいトークンを生成をするをクリックします。

  1. ノートを記載とトークンの有効期限を指定し、画面下のトークンの生成をクリックします。

ノートと有効期限を指定する場所

スコープの設定選択-1

スコープの設定選択-2

スコープの設定選択-3

トークンの生成

  1. トークンの値をコピーします。
    黒の塗りつぶしの箇所が実際のトークンの値となります。・・・※1

ローカル側のGit/Git-secretsのインストールと設定

普段使うとしたらWSLから実行するケースが多いかと思うので、ここからはWSLのイメージから実行となります。

  1. Gitインストール
    まずは、Gitのモジュールをインストールします。

コマンド:

sudo apt install git -y
  1. Git利用時のアカウント設定
    Gitでcommitを実行するために、まずアカウント設定が必要になります。

git config --global user.email "認証するメールアドレス"
git config --global user.name "登録した際のGitHubのアカウント名"
  1. リポジトリの作成
    Gitを使用するためには、まずはリポジトリが必要となります。

コマンド:

git init
  1. Git-secretsインストール
    Git secretsは、機密情報(例えば、秘密鍵やパスワード)がコミットされないようにするためのGitフックツールです。設定することで、コミットの前に機密情報を検出し、修正することができます。

コマンド:

sudo apt install git-secrets -y
  1. トークンを利用しGithubのリポジトリへ接続します。

コマンド例:

git remote set-url origin https://(※1で取得したトークン値)@github.com/(githubのアカウント名)/リモートリポジトリ名.git
  1. 最初のcommit行います。
git push -u origin main

参考記事:

GitHubアカウント作成とリポジトリの作成手順

Discussion