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
- 一度もコミットしていない状態 ー ”Not committed yet. Untracked file: XXX”
- Worktreeで変更したが、Staging Areaに登録されていない状態 ー ”Change not staged for commit. Modified: XXX”
- Staging Areaに登録済みだがCommitされていない状態 ー ”Change to be committed. New file: XXX”
- コミットが完了、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/
セキュリティを確保した接続を行うため公開鍵を設定
- SSH Keyの生成
$ ssh-keygen -t rsa -b 4096 -C xxx@xxx
(メールアドレス) - 鍵の保存場所を確認
- パスフレーズの登録
- 公開鍵をクリップボードにコピー
$ pbcopy < 保存場所
- GitHubの設定画面 (Setting)のSSH Keyの項目にタイトルを入力し公開鍵をペーストして登録
- GitHubと正しく連携されているか確認用のコマンドを実行
$ ssh -T git@github.com
- 登録したパスフレーズを入力し設定状況を確認
GitHubとローカルの作業連携の開始方法
GitHub上のRemote Repositoryから開始
- Remote Repositoryの作成
- 既に誰かがRemote Repositoryを持っている場合: GitHub上で公開されているRepositoryをFork(複製)して新たなRepositoryを自らのアカウント下に作成 (直接他のアカウントのRepositoryを使う場合、このステップはスキップできる)
- 全くの初めからRepositoryを作る場合: GitHubのGUIのNew Repositoryから作成
- Local Repositoryの作成
- ローカルの作業ディレクトリを作成したいパスから
$ git clone [Remote Repository のパス]
(clone with SSHのパスをコピー)を実行 $ git remote -v
にてRemote Repositoryの設定を確認。表示されるorigin
はRemote Repositoryを表していおり、その後にURLが表示される。
- ローカルの作業ディレクトリを作成したいパスから
ローカルから開始
- Local RepositoryをアップするRemote Repositoryを作成。GitHubのGUIのNew Repositoryから作成
- (
$ git init
、$ git add ...
、$ git commit...
にてアップするLocal Repositoryを準備 ->既にある場合はスキップ $ git remote add origin https:パス
(clone with HTTPSのパスをコピー)にてリモートリポジトリを追加$ 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を確定したら、修正作業を開始