Git 超入門

1.Gitを使おう

Git(ギット)とは、ソースコードなどの変更履歴を管理する分散型のバージョン管理システムのことです。

Gitでは開発者や開発目的(サイドバーの開発など)ごとに本流の開発から分岐して開発を進め、ある程度完成したら、本流の戻して、本流の開発を進めることが出来ます。
これにより、機能ごと・時系列ごとに開発のバージョン管理をすることができます。

通常の共有ファイルでは、どのタイミングで誰が変えたか分からなくなってしまったり、変更がバッティングすることがありますが、
問題が発生したときも、任意の時点に戻ったり、バッティングを適切に対処することができます。

こういったメリットが受けて、近年のバージョン管理システムの主流となっています

ここではwindows環境を前提として進めてみます。


1.1 リモートレポジトリとローカルレポジトリの概念

リポジトリとは、ファイルやディレクトリの状態を保存する場所です。変更履歴を管理したいディレクトリなどをリポジトリの管理下に置くことで、そのディレクトリ内のファイルなどの変更履歴を記録できます。

リポジトリは自分のローカル環境(つまり、自分のPC)にある「ローカルリポジトリ」とサーバなどネットワーク上にある「リモートリポジトリ」の2箇所にあります。基本的にローカルリポジトリで作業を行い、その作業内容をリモートポジトリへプッシュするという流れです。


1.2 Gitインストール

参考ページ https://qiita.com/toshi-click/items/dcf3dd48fdc74c91b409



1.3 自分のローカルレポジトリでバージョンを管理してみる

個人で開発を進める際、バージョン管理は一旦ローカルで進めます。まずはローカルでのgitの使い方にふれます。


1.3.1 Gitで管理するフォルダを作成

コマンドラインを使ってみましょう
スタートマークを押してcmdでコマンドプロンプトの開始

作業フォルダに移動します

cd Users\username\documents

適当な作業フォルダを作成しました。フォルダ作成mkdir→フォルダ移動cd→作成mkdir→移動cd

mkdir gitdocuments
cd gitdocuments
mkdir gittest
cd gittest

git initでこのフォルダをgit管理下に置きます。実行すると、フォルダには.gitが作成されます。

git init

それではここに適当なファイルを作成します。ここではREADME.mdを作ってみます。
フォルダのエクスプローラー上で作成しても良いですが、コマンドラインで作成してみます。
これは、”this is test local repository” という内容を README.mdを作成して書き込み、という指示です。

echo "this is test local repository" > README.md



コミットによるバージョン管理

これからgit add [ファイル名]してgit commit -m [”任意のコメント”]していきます。
任意のコメントは、バージョン管理をするときにコメントを参照していくので、この変更が何を意味しているかを簡潔に表しておくと開発の運用上便利です。

git add README.md
git commit -m "this is the first commit"

これで、最初の状態が「コミット」された状態になります。
この時フォルダを見てみると、緑のチェックマークが以下のようについていると思います。
これは、このファイルが現在の状態が最新として管理されている状態を意味します。

次に、ファイルを適当に編集して変更してしまいます
次のように変更しました。

“this is test local repository”
changed

保存すると、フォルダの状態が以下のように、変更されたファイルが赤くなっていると思います。これは、変更された現在の状態が、最新でないことを表します。

ここで、コミットなどの状態を見るのに使うgit statusを使ってみます。

git status

すると以下のように、README.mdが編集された(modified)状態となっていることが分かります。

On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   README.md

no changes added to commit (use "git add" and/or "git commit -a")

それでは、これでコミットします。

git add README.md
git commit -m "modified"

これをすると、また、README.mdが最新の状態になっていることが確認できると思います。

ここで、これまでどのような変更履歴があったのかをgit logで見てみます。

git log

  
すると、以下のように、最初のコミットと次のコミットのログが表示されています。

commit 447f23dc631ada2efaa396ff023dede11f6814f3 (HEAD -> master)
Author: xxxxxxx <xxxxxxx@gmail.com>
Date:   Sun Sep 30 17:06:37 2018 +0900

    modified

commit 20479817d2fe72195d463391e25a2b2a413b0b1b
Author: xxxxxxx <xxxxxxx@gmail.com>
Date:   Sun Sep 30 16:50:34 2018 +0900

    this is the first commit

git add と git commit の意味
git addは「ステージング」といいます。git addで選んだファイルをステージにあげ、そのファイルだけを選択的にコミットすることが出来ます。
これによって、全ての変更の内、変更の種類によってコミットを小分けにしながら、変更が理解しやすい単位でコミットしていくことが出来ます。


ブランチを切って開発する

ブランチを切ることで、開発者や開発の目的に合わせて新たな分岐(ブランチ)を作り、開発を進めることができます。
そして、ある程度完成したら本流のブランチに統合します。
これによって本流を汚すことなく、開発者・開発の目的毎に開発を分割して進めることが出来ます。
ここでは、本流のmaster branchからdevelop branchを作成します。

ブランチを以下で切ります。

git branch develop

これでブランチが作成されました。次にできたブランチ一覧を見てましょう

git branch -a

実行結果は以下のようになります。星がついているブランチが現在自分がいるブランチを表していて、今はmasterブランチに居ます。

  develop
* master

それでは、作成したdevelop ブランチに移動します。

git checkout develop

git branch -aで今のブランチがdevelop ブランチに居ることを確認しましょう。

次に、このブランチで新たなファイルを作成します。hello world というpython ファイルです。

echo print("hello world") > hello.py

上の例にならって、このファイルをコミットしましょう。

git add hello.py
git commit -m "added hello.py"

さて、ここでエクスプローラを見てみましょう。全て最新の状態です。

ここで、masterに移動してみます。

git checkout master

すると、エクスプローラからhello.pyが消えていると思います。この様に、ブランチを切り替えるとエクスプローラの見え方もそれに合わせて変わります。

次に、developブランチをmasterブランチに統合します。この操作をマージと言います。
masterブランチに居る状態で以下を実行します。

git merge develop

これで、エクスプローラの見え方も、develop ブランチで作成した通りになったと思います。



参考 .gitignore

.gitiginoreというファイルを作成し、中に読み込む必要のないファイル名を書き込んでおくと、gitはこのファイルを無視します。
データファイルなどを無視したい場合はこれが便利です。


2.リモートレポジトリで共有する(Githubを使う)



2.1 Githubの登録

公式サイトにて、アカウント登録をします。



2.2 新しいプロジェクトを作成し、ローカルの内容をpush

アカウントでログインした状態で、new repository で新しいレポジトリを作成します。
適当なレポジトリ名をつけ、publicを選択して、create new repositoryで新しいレポジトリが作成されます。

コマンドラインで、以下を実行します。http://xxxxxxは自分のレポジトリに読み替えて下さい
1行目はURLに”origin”という短縮名(ニックネーム)を付けるという意味で、任意の名前を付けられますが、監修的にoriginとつけます。
2行目は、originのmasterブランチにプッシュする、という意味です。

git add origin http://xxxxxx
git push -u origin master

これで、リモートにローカルで作成していたmasterブランチの内容がそのまま作成されていることかと思います。

このようにして、ローカルで開発した内容を、リモートレポジトリに上げることが出来ます。


3.リモートレポジトリで共有する(既存レポジトリをクローン)



3.1 他の人のリモートレポジトリをコピー(clone)

gitでは、Github上にある他の人のリモートレポジトリをコピー(クローン)することができます。

クローン用のディレクトリを作成し、そのディレクトリに移動します。(適当な場所でOK)

cd..
mkdir clonetest
cd clonetest

次に、コピーしたい公開されたGithubのページに行き、clone or downloadをクリックし、URLをコピーします。

そのURLをもって、コマンドプロンプトで以下を実行します。

git clone https://github.com/MassSkt/testrepository.git

すると現在のフォルダ直下に、testrepositoryが作成されます。ブランチもリモートレポジトリでの構造を保っており、そのままローカルでブランチを切ったりして開発を進めることができます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です