digirakuda ようこそ!  コンピュータの世界へ!

業務をしながら覚えるGit

現場のバージョン管理システムがGit以外の方や「yymmdd.zip」で管理している人を対象とします

Gitをインストール

以下のURLからGitをダウンロードします
https://git-scm.com

ダウンロードが終わったらインストールをします
全ての画面でそのままの設定で「Next」を押します











インストール完了です

gitの設定

最低限以下の設定をしないとGitが使えません
右クリックをすると「Git Bash Here」という項目が追加されているのでクリックします

「Git Bash」が起動するので以下のコマンドを入力します。(Git BashはGitを操作するツールです)

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
「"John Doe"」の部分と「johndoe@example.com」の部分は自分のものに変更してください
メールアドレスの設定は実在しなくも問題ありません

Gitと連携させるツールの設定

エディタと差分を確認するツールを設定します
その前に以下の二つのツールをインストールしてください

この二つをインストールしたらまた読み進めてください
userフォルダを確認すると新しく「.gitconfig」というファイルができています(隠しファイルなのでフォルダオプションを変更していない場合は見えません)
これをテキストエディタで開いてみると先ほど行った設定が以下のように反映されています。
[user]
    name  = John Doe
    email = johndoe@example.com
このファイルにさらに設定を加えます
[user]
    name  = John Doe
    email = johndoe@example.com
[core]
	editor = 'C:/Program Files (x86)/Notepad++/Notepad++.exe' -multiInst
[diff]
    tool = WinMerge
[difftool "WinMerge"]
    path = C:/Program Files/WinMerge/WinMergeU.exe
    cmd = \"C:/Program Files/WinMerge/WinMergeU.exe\" -e -u -r -wl \"$LOCAL\" \"$REMOTE\"
[merge]
    tool = WinMerge
[mergetool "WinMerge"]
    path = C:/Program Files/WinMerge/WinMergeU.exe
    cmd = \"C:/Program Files/WinMerge/WinMergeU.exe\" -e -u \"$LOCAL\" \"$REMOTE\" \"$MERGED\"

これで連携ツールの設定は完了です

Gitを使ってバージョン管理をする

具体的にGitを使っていきます
例として以下のようなフォルダ構成でおこないますが、仕事で開発しているソースがあればそちらをGitで管理してみましょう

まずは開発しているプロジェクトのフォルダをエクスプローラで開きます

そのフォルダで右クリックして「Git Bash Here」を選択します
Git Bashが起動したら以下のコマンドを打ちます
git init
コマンドが実行されるとフォルダ内に「.git」というフォルダが作成されます(隠しフォルダです)

この「.git」というフォルダの中に管理に必要な情報から、登録したソースコードの情報まですべて含まれるので消さないようにしてください

ファイルをGitの管理下に入れる

まずは.gitフォルダのある場所で右クリックをしてメニューから「Git Bash Here」選択します
(git init等の操作でGit Bashを閉じていなければこの操作はいりません)
最初は管理対象とするファイルをGitに登録します
以下のコマンドを入力してください
git add -i
選択肢が以下のように出ます
1:status 2:update 3:revert 4:add untracked
5:patsh  6:diff   7:quit   8:help
管理対象になっていないファイルの追加は「add untracked」なので4を選択します
4
.gitフォルダとそれ以下の階層の登録されてないファイルの一覧が出てくるのでgitで管理したいファイルを選択します
サンプルでは以下のように表示されます
1:content.html
2:img/logo.png
3:index.html
全てのファイルを管理したいので以下のように入力しました
1-3
※1,2,3と入力しても同様の選択になります
何も入力せずにEnterを入力すると選択肢にもどります
1:status 2:update 3:revert 4:add untracked
5:patsh  6:diff   7:quit   8:help
7を選んで追加作業を終了します
7
その次は以下を入力します
git commit
このコマンドで先ほどの「git add」で選択したファイルを記録します
エディタが起動されるのでコメントを入力してみましょう
このコメントが履歴として表示されます
今回は何もないところに新規でファイルしたので「新規ファイル追加」と入力しておくことにします
もちろんみなさんは任意のコメントで構わないですがコメントなしはできないので何かしらは入力してください
※ここでエディタが開かない人はエディタのパスが間違っている可能性があるので「.gitconfig」内の「editor =」部分のパスを確認してください。
(program files内をパスとして指定する際はパスにスペースが入ることになるので「 ' 」で囲む必要があります)
保存して、エディタを閉じたら記録完了です

ファイルを更新する

次はファイルの更新です
追加機能を実装したり修正が完了したり、作業がひと段落したらその状態を記録してみましょう
サンプルでは「index.html」内の「Hello World」という文字列を「こんにちは、世界」と変更してみました
Git Bashを開いていない人はそのプロジェクトの「.git」フォルダのある階層で右クリックをして「Git Bash Here」を選択してください
Git Bashが起動したら以下ファイルの変更箇所の確認をするために以下のコマンドを入力します

git difftool
変更したファイル名とそれをWinMergeで起動するかを確認されます
Viewing(1/1) 'index.html'
Launch 'WinMerge'[Y/n]?
確認するので「y」を入力します
y
入力後WinMergeが起動してファイルの差分が表示されます

問題なければそのまま×ボタンを押してWinMergeを閉じて終了します
他のファイルも同様に聞かれるので必要であれば確認します

変更した部分が確認できたら変更ファイルを記録するためにファイルを選択します
以下のコマンドを入力します

git add -i
ファイルを追加したときにも入力したコマンドです
同様の選択肢がでるので「update」の2を選択します
2
すると、内容を変更したファイルの一覧が表示されるはずです
1:  unchanged   +1-1 index.html
このindex.htmlの変更を記録したいので、以下を入力しました
1
皆さんは変更したファイルが複数あると思うのでそちらも選択してください
何もしないで「Enter」を入力すると選択肢に戻るので「7」を選択して終了します
更新するファイルの追加作業が終わったら、以下のコマンドを入力します
git commit
ファイルをGitの管理に入れたときと同様にコメントを入力するためにeditorが開くのでコメントを入力します
変更に関する事柄を入力して保存してエディタ終了します
サンプルでは「Hello Worldの修正」と入力しました

これでGitでのソース管理の一連の流れは終了です

履歴を確認する

履歴を確認してみます
以下のコマンドを入力します(「git」ではなく「gitk」であることに注意してください)

gitk --all

グラフィカルに履歴をみることができます

まとめ

このようにソースファイルの変更履歴を作って管理していきます
最後に大事なコマンドと用語、そしてその役割をまとめておきます

gitにはブランチといった便利な仕組みもあるのですがそれを説明すると混乱するのでひとまずはここまで紹介したコマンドでGitを使ってみてください