WindowsでGitとGitHubを使う

スポンサーリンク
プログラミング
スポンサーリンク

WindowsでGitとGitHubの基本的な使い方をまとめていきます。

GitとGitHubについて

Gitは作成したプログラムのソースコードなどの変更履歴を管理するアプリです。Gitでは、それぞれの変更履歴ごとにリポジトリと呼ばれる場所にファイルの状態を保存することによって、バージョンを管理し、複数人での共同作業をやり易くします。

一方で、GitHubはGitHub社が提供する世界有数のGitホスティングサービスで、有料の商用プランの他、無料でのリポジトリ環境が提供されている。今回は、GitやGitHubのサービスを利用する上での最低限の知識をまとめてみます。今回は個人でGitとGitHubを使う場合に役立つコマンドを中心にまとめました。

GitとGitHubの使い方については、下の公式の提供している日本語ドキュメントが非常に参考になります。基本的に以下のまとめは、このサイトの部分的な要約と噛みくだきです

Gitのインストールと設定

WindowsにGitをインストールするには、Git for Windowsのページから、ダウンロードしてインストーラを実行します。Gitをすでにインストールしている場合も最新バージョンにしておいた方が良いと思います。

Gitをインストールしたら、Git Bashを起動します。最初に個人識別用に名前とE-mailを登録します。また、使用するエディタを選択します。ここではエディタとしてVSCodeを選択します。もし、VSCodeをインストールしていない場合はあらかじめインストールしておきます。

$ git config --global user.name "Taka"
$ git config --global user.email mail-address@xxx.com
$ git config --global core.editor "code --wait"

以下のコマンドで設定を確認できます。

$ git config --list

Gitリポジトリの作成

ローカルのディレクトリを管理対象とする場合

管理したいディレクトリに移動して、「git init」でリポジトリを作成できます。カレントディレクトリの下に「.git」というサブディレクトリができて、その中にリポジトリや履歴、設定が保管されます。下の例ではd:/Users/practice/myprojectにGitリポジトリを設定しています。

$ git init
Initialized empty Git repository in D:/Users/practice/myproject/.git/

リモートリポジトリをクローンする場合

共同作業でオンラインにあるリポジトリのコピーをローカルに作成する場合は「git clone [URL]」でクローンを作成できます。

$ git clone https://github.com/xxxxx

Gitの基本的な使い方:ファイル操作

Gitにおけるファイルの状態

Gitでは、ファイルの管理は、「ワークスペース」のファイルを「ステージ」に加えた後、「レポジトリ」にコミットすることによって、行われます。「ワークスペース」のファイルを変更した場合、変更履歴をレポジトリに反映させるためには再度、コミットする必要があります。以下に簡単にまとめます。

# git add ファイル名 or ディレクトリ名
# git commit

なお、git commitで、ステージのファイルがすべてローカルレポジトリに送られます。その時、テキストエディタが開くので、バージョンの履歴を簡単に記載します。

その他の基本コマンド

git status・・・ファイルの状態を確認します
git status -s ・・・ファイルの状態を簡略に示します(??: untracked, A: staged, M: modified)
git diff・・・ワークスペースのファイルとステージのファイルの差異を確認
git diff –staged・・・コミット済みのファイルとステージのファイルの差異を確認
git commit -m “コメント”・・・コメントを記載してcommit
git commit -a・・・追跡されているファイルをすべてステージに登録し、コミット
git rm ファイル名・・・gitから指定ファイルを削除
git log・・・コミットの履歴を確認
git commit –amend・・・直前のコミットのやり直し
git reset HEAD ファイル名・・・指定ファイルのステージの取り消し
git checkout — ファイル名・・・指定ファイルの変更をコミット済み内容に戻す(コミット後の変更が戻るので注意)

.gitignore

システムファイルなどGitで表示したくないファイルはプロジェクトのディレクトリ直下の「.gitignore」にglob形式でファイル名を指定することによって、そのファイルを無視してくれます。

Gitの基本的な使い方:ブランチ管理

ブランチ機能を使うことにより、大規模開発を円滑に行うことができるとのことです。(個人趣味プログラマの私には無縁かもしれませんが。。。)HEADは作業中のブランチへのポインタを示しています。まず、masterに開発用のブランチとしてtestingを作ります。checkoutでHEADポインタをtestingに切り替えた後、開発用の修正を加え、新たな機能を実装したコミット3を作ったとします。一方で、masterの方も修正点等で修正されて最新はコミット4だとします。その時、testingで開発部分を反映させるには、masterをHEADにした状態でmergeコマンドにより、変更部分を統合します。この機能を使うことにより、リリースしている環境の保守と新規の開発を並行して進めることができるというわけです。

ブランチ関連の基本コマンド

git branch ブランチ名・・・新たなブランチを作成
git log –oneline –decorate・・・ブランチのHEADポインタの状態を確認
git checkout ブランチ名・・・指定のブランチにHEADを切り替え
git checkout -b 新規ブランチ名・・・ブランチの作成と切り替えを同時に実行
git merge ブランチ名・・・現在のブランチに指定ブランチをマージし、あたらたなマージコミットを生成
git branch -d ブランチ名・・・指定ブランチの削除
git branch・・・ブランチの一覧を表示

リモートレポジトリの活用

GitHubへの登録

個人でリモートリポジトリを使うなら、GitHubが便利です。GitHubは下記のサイトからユーザーIDとパスワード、メールアドレスを入力し、登録します。

リモートレポジトリへのPUSH

ではさっそくリモートリポジトリにファイルを置いてみます。ここでは、Privateリポジトリとして「git-test」という名前のリポジトリを作成します。GitHubにアクセスして、下記の画面などから新規リポジトリを作成します。また、適切なSSHキーの設定をします。SSHキーの設定方法は下の記事をご参考ください。

$ git remote add origin git@github.com:User-Name/git-test.git
$ git push -u origin master
Enumerating objects: 11, done.
Counting objects: 100% (11/11), done.
Delta compression using up to 12 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (11/11), 892 bytes | 297.00 KiB/s, done.
Total 11 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), done.
To github.com:User-Name/git-test.git
 * [new branch]      master -> master
branch 'master' set up to track 'origin/master'.

リモートリポジトリ操作の基本コマンド

git clone https://xxx.xxx.・・・オンラインのリポジトリのクローンをワークスペースに作成
git remoto・・・リモートのリストを表示
git remote add ニックネーム URL・・・リモートの追加
git fetch リモートネーム・・・リモートプロジェクトの全データを取得
git push リモートネーム ブランチ名・・・リモートに特定のブランチをプッシュ
git remote rm ニックネーム・・・リモートを削除

Gitには複数人での作業に適した便利なコマンドもありますが(むしろそちらが目的)、そのあたりは私自身はあまり使わなそうなので、割愛し、おいおい、まとめたいと思います。

最後に

今度、作った作品をGitHubで公開してみるかなぁ。。。

コメント