GitとGitHub

Git(ギット)は、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。Linuxカーネルのソースコード管理に用いるためにリーナス・トーバルズによって開発され、それ以降ほかの多くのプロジェクトで採用されている。Linuxカーネルのような巨大プロジェクトにも対応できるように、動作速度に重点が置かれている。

GitHub」は、「Gitを利用した、開発者を支援するWebサービス」の名前です。GitHubは、クラウド上でGitを用いたバージョン管理をすることができ、さらにGitには無い、開発者に便利な機能を追加しています。いまやユーザ数は1000万人を超え、世界中のソフトウェア開発に利用されているサービスです。GitHub のようなGitのホスティングサービスは、他にもBitbucketやBacklogなど複数存在しています。Gitを使うためには必ずGitHubを使わねば……というわけではありません。

Gitのインストール

git のホームページよりダウンロードしてインストールする。 https://git-scm.com/

Terminalにて gitのバージョン確認

$ git --version

Visual Studio Codeとターミナル・Gitとの連携

VSC上で Shit + Command + P キーを押す。コマンド・ラインに shell と入力。Path内にcodeコマンドをインストールする。これで、Terminal 上からVSCを呼び出せる。 

$ code . で現在のディレクトリ上のVSCを呼び出せる。$ code 絶対パス で直接対象パスのディレクトリの指定も可能。

Gitの設定

Gitの設定一覧を表示

$ git config --list

特定の設定を表示

$ git config 設定項目(e.g. user.name)

Gitの設定

$ git config --global 設定項目 設定値

例1. ユーザー名の設定

$ git config --global user.name AAA

例2. メールアドレスの設定

$ git config --global user.email AAA@BBB

GitにVisual Studio Codeをエディターとして設定

$ git config --global core.editor "code --wait"

$ git config core.editor で設定ができているか確認

ローカルでのGit操作

ファイル・ディレクトリ操作

4つの作業領域がある

作業手順

  • ローカルリポジトリを取得    
    • $ cd 作業ディレクトリ
    • $ git init
  • ステージングエリアに登録
    • $ git add ファイル・フォルダ名
    • $ git add . ->現在のディレクトリ配下の全てのファイルを追加
  • ファイル・フォルダのコミット
    • $ git commit
    • VSCが開き、コミットメッセージを書き込む
    • $ git commit -m "メッセージ" で直接コミットメッセージを書き込める
  • ステージングエリアへの登録を取り消す
    • $ git reset HEAD ファイルパス
  • ワークツリーの変更を取り消す
    • $ git restore ファイルパス
  • ファイルの削除
    • $ git rm ファイルパス もしくは $ git rm -r ディレクトリパス にてステージングエリアに削除した状態を登録
    • $ git commit にて削除をコミット

状態の確認

フォルダ・ディレクトリの各作業領域の状態を確認

$ git status

  1. 一度もコミットしていない状態 ー ”Not committed yet. Untracked file: XXX”
  2. Worktreeで変更したが、Staging Areaに登録されていない状態 ー ”Change not staged for commit. Modified: XXX”
  3. Staging Areaに登録済みだがCommitされていない状態 ー ”Change to be committed. New file: XXX”
  4. コミットが完了、WorktreeとRepositoryが一致した状態 ー ”nothing to commit. Working tree clean

差分の確認

$ gitdiff

ログの確認

$ git log or $ git log -p

Gitで管理しないファイルの設定

.gitignore ファイルを作業ディレクトリ内に作成 (.gitディレクトリが格納されているのと同じレベル)

ファイル内に管理しないファイル名 or ディレクトリ名を書き込む

.gitignoreファイルをステージングエリアに登録しコミットする。 $ git add .gitignore -> $ git commit

GitHubを使う

GitHubのホームページにてアカウント登録 https://github.com/

セキュリティを確保した接続を行うため公開鍵を設定

  1. SSH Keyの生成 $ ssh-keygen -t rsa -b 4096 -C xxx@xxx (メールアドレス)
  2. 鍵の保存場所を確認
  3. パスフレーズの登録
  4. 公開鍵をクリップボードにコピー $ pbcopy < 保存場所
  5. GitHubの設定画面 (Setting)のSSH Keyの項目にタイトルを入力し公開鍵をペーストして登録
  6. GitHubと正しく連携されているか確認用のコマンドを実行 $ ssh -T git@github.com
  7. 登録したパスフレーズを入力し設定状況を確認

GitHubとローカルの作業連携の開始方法

GitHub上のRemote Repositoryから開始

  1. Remote Repositoryの作成
    • 既に誰かがRemote Repositoryを持っている場合: GitHub上で公開されているRepositoryをFork(複製)して新たなRepositoryを自らのアカウント下に作成 (直接他のアカウントのRepositoryを使う場合、このステップはスキップできる)
    • 全くの初めからRepositoryを作る場合: GitHubのGUIのNew Repositoryから作成
  2. Local Repositoryの作成
    • ローカルの作業ディレクトリを作成したいパスから$ git clone [Remote Repository のパス] (clone with SSHのパスをコピー)を実行
    • $ git remote -v にてRemote Repositoryの設定を確認。表示される origin はRemote Repositoryを表していおり、その後にURLが表示される。

ローカルから開始

  1. Local RepositoryをアップするRemote Repositoryを作成。GitHubのGUIのNew Repositoryから作成
  2. ($ git init$ git add ...$ git commit... にてアップするLocal Repositoryを準備 ->既にある場合はスキップ
  3. $ git remote add origin https:パス (clone with HTTPSのパスをコピー)にてリモートリポジトリを追加
  4. $ git push -u origin master にてRemote Repositoryにプッシュするブランチを反映 (origin はRemote Repositoryの名前。masterはブランチの名前 (この手順の場合、Local Repositoryの全てのディレクトリとファイルとなる)

Branchの作成・Branchでの作業

  • Branchの作成 -> $ git branch ブランチ名
  • 使用中のBranchの確認 -> $ git branch
  • 作業するBranchに切り替える -> $ git checkout ブランチ名
  • 作業するBranchを確定したら、修正作業を開始

Pull Request、Review、Merge – TBC

Remote Repositoryの内容をLocal Repositoryに取得 (git pull , git fetch) – TBC