技術部

プログラミングのことが中心

Gitの操作

Gitとは?

分散型バージョン管理システム

一つのファイルやファイルの集合に対して、時間とともに加えられていく変更を記録するシステム

バージョン管理システム導入メリット

ファイルを以前の状態に戻したり、過去の履歴を見直したり、誰が修正を行ったかの確認ができる。

Gitの操作

今回のブログでは、自分のgitに対しての理解の整理と初心者が簡単にgitに慣れるために覚えておくべきことを目標としている。

Gitリポジトリの取得

りぽじとりってなんだ?

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

git ini

バージョン管理を開始することができるようになる

git clone

既存のGitリポジトリをコピーし、途中からでも開発に参加し、バージョン管理ができるようになる

branch操作

ブランチとは?

作業の履歴を分岐し、一作業ごとに記録としていくためのもの
分岐したブランチは、他のブランチに影響しない

統合ブランチとトピックブランチ

統合ブランチ

トピックブランチの分岐元となり、併合先のブランチのことで、このブランチを本番環境にデプロイする。
例)master/developが統合ブランチの役割

トピックブランチ

一つのトピックに集中して、他の作業は一切行わない、機能追加や修正作業ようブランチのこと。
トピックブランチは統合ブランチから分岐し、作業終了後統合ブランチへ取り込む。

ブランチの分岐

  • ブランチの作成と切り替え
git checkout -b feature-A

このコマンド何をしているのかというと、ブランチを作成し、作成したブランチに移動するのを同時に行った。

以下のコマンドと同じこととなる

git branch feature-A
> ブランチ作成

git checkout feature-A
> ブランチ移動

このブランチを作成し、ブランチに移動することこそが、作業履歴の分岐である。

ブランチの統合

ブランチを統合ブランチからトピックブランチを作成し、分岐した。修正、機能追加をしたブランチをまた、トピックブランチに統合する必要がある。

マージ

git checkout master
> 統合ブランチへ移動

git merge feature-A
> 統合ブランチへ修正ブランチをマージ(統合)

以上でgit branchについて。。。

gitで大切なファイル保存領域と操作

f:id:tun83:20160724144504p:plain

ファイル領域<インデックス>へファイルを追加

実行コマンド

git add <filename>

修正ファイルを管理対象とするために、git addでインデクス領域へファイルを登録 f:id:tun83:20160724144931p:plain

リポジトリの歴史を記録

実行コマンド

git commit -m 'message'

インデックス領域(ステージング)に保存されているファイル、作業記録を git commitでリポジトリの歴史として、記録する。 f:id:tun83:20160724145119p:plain

変更履歴をリモート上で共有

実行コマンド

git push origin branch_name

originとはリモートりポジトリの場所(URL)の別名のこと

ローカルリポジトリにある、変更履歴を複数人に共有するために、git push でローカルリポジトリ何の変更履歴をリモートリポジトリへアップロード f:id:tun83:20160724145448p:plain

最新の更新履歴のダウンロード

実行コマンド

git checkout master
> 統合ブランチに移動

git pull
> 最新の更新履歴のダウンロード

リポジトリの状態確認

実行コマンド

git status
> リポジトリの状態が表示される

git statusコマンドはGitリポジトリの状態を表示

差分確認

実行コマンド

git diff

git diffコマンドは、ワーキングツリーと最新コミット間の差分を確認する

プルリクエストベース開発作業

プルリクエストとは簡単にいうとコードレビューをしてもらうために、問いかけるような機能がある。(Github or Bitbucket etc)

git branch 
> 今現在のブランチがmasterであるかを確認。そうでない場合はmasterへ移動

git checkout -b feature-A(branch name)
> ブランチの作成と移動

> 何か機能の追加や修正を行う

git status 
> リポジトリの状態を確認

git diff
> 修正の差分を確認=>変な修正は入っていないかを見る

git add <修正filename>
> ファイル領域<インデックス>へファイルを追加

git commit -m 'add function'
> リポジトリの歴史を記録

git status
> リポジトリの状態を確認
> On branch second
nothing to commit, working directory clean
うまくいけばこのようなメッセージが返ってくるはず

git push origin fixes-A(branch name)
> 変更履歴をリモート上で共有

> Github or bitbucket上でpullrequestをだす。
> pullrequestでレビューがオーケーならばそこでマージ=>ブランチの統合

git checkout master
> 統合ブランチへ移動

git pull
> 最新の更新履歴のダウンロード

以上が一般的なGithub or bitbucketでのプルリクエスとベースでの開発の流れである。

だいたいこれで、ごくごく一般的なgitの使い方を説明した。
おそらく、これくらい知っていればなんとかはなると思う。(コンフリクトなどがおき、複雑になってくるとまた違ったコマンドを覚える必要がある)

今回のブログでは、自分のgitに対しての理解の整理と初心者が簡単にgitに慣れるために覚えておくべきことを目標としている。

なので、そこまで深いおいはしていない。

まずは、少しいじってみてどんな感じなのかのイメージがつかめることができたらそれでいいのではないかを思うからである。

何かわからないこと、ここは違うだろーなどがありましたら、コメントでもなんでもください。

最後までお読みいただきありがとうございます。

ちなみに僕が読んだ本

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)