20150927 – Git 復習用

Git-Logo

以下社内勉強会でのGitに関する覚え書き・備忘録、復習用です。

目次

  • 概要
  • バージョン管理の目的
  • 利点
  • 操作
  • 運用フロー
  • まとめ

概要

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

分散型とは?

SVNだとオンライン上に1つのリポジトリのみ。
自分や相手が変更するとリモート環境が差し替わるGitは
自分自身のリポジトリが存在させられるので、分散しての変更・編集が可能!!!!

サルでもわかるGit入門より
「サルでもわかるGit入門」より

※リポジトリとは、ファイルやディレクトリの状態を記録する場所。
・リモートリポジトリ…専用のサーバーにある複数人で利用するリポジトリ
・ローカルリポジトリ…ユーザー1人1人が利用するためのローカル環境に設置するリポジトリ

バージョン管理の有償化により、開発された。大きな開発に対しても使われることのある強い管理システム。

Octocat

ちなみにGithubはGitが使えるホスティングサービス


バージョン管理の目的

  • 問題の発生点の特定とロールバック
    • 問題の特定しやすくなる
  • 変更の差分を確認できる
    • リンク先などの変更点が特定的
  • 変更者と変更理由が明確になる
    • 誰がどのように行ったかの確認

利点

  • オフラインでもコミットしてログが残せる
    • ローカルにリポジトリがあるおかげ
  • brunchの作成しやすさ、切った時の作業のしやすさ
  • リモートへのpush前であればcommitや取り消し、結合ができる
    •  あくまでpush前にやりましょう
  • 柔軟に各プロジェクトに合わせての運用フロー管理
    • 他社とのやりとりなどに対応しやすい
  • Github、Bitbucket、Backlogなどのサービスや機能が充実している

操作(CUI)

初回操作(gitはインストール済みにしておく)

git init
管理の開始(管理するディレクトリへ移動しておく)

git add -A
全データをGitの管理下に追加
→「git add .」でも可

git commit
管理下への追加をローカルリポジトリに登録(記録)

git remote add origin http://~~
リモートリポジトリを設定

git push origin master (-u)
ローカルでのコミット内容をリモートリポジトリへ反映
-uをつけるとorigin master省略可

基本的な流れ

git clone http://~~
リモートを参照してローカルリポジトリを作成する
ダウンロードではなくローカル環境を作っている

git status
追加、削除、変更があったデータの確認

git add file_name
追加、削除、変更があったデータをローカルへ反映
その後にcommitで登録される

git commit -m “#comment”
コミットメッセージを入力して登録

git push
コミット内容をリモートへ反映・登録

git log
リポジトリの変更履歴を表示する

※基本的な追記作業はgit stautsで状態を確認して、add, commit, pushする流れでOK

追加、削除、変更の反映(一例)

git add -A
追加、削除、変更した全てのデータをローカルへ追加、反映

git add file_name
指定したデータのみローカルへ追加、反映

git commit -a
変更があったデータのみをローカルへリポジトリへ反映させてコミット
→つまり「追加、削除したデータ」は無視されるので注意

以前のcommitに戻る

git checkout commitID
commitした前のデータに戻れる

git checkout master
最新のcommitを取得できる


運用フロー

有名なワークフロー:git-flow、github-flow

→git-flowはGitを全体的に理解していないと使うのは難しめ。。。

Github Workflowの流れ

  1. masterブランチは常に公開できる状態にする
  2. 機能追加やバグ修正時はトピックブランチを作成してブランチ内で作業を進める(課題毎に作成するのがよい)
  3. 作業完了後、またはフィードバックが欲しい時はpull request
  4. 有権者がコードレビューを行い、問題なければmasterブランチにマージ→公開の流れ

参考リンク

git flowとgithub flowざっくりまとめ


まとめ

  • 今後、バージョン管理は必須!!!
  • その中でもGitは運用方法の柔軟性が高い!!!
  • 追加、変更、削除の反映の違いに注意!!!
  • ワークフローの導入は品質向上につながるが、ある程度の理解と運用コストが高いので、すべてに導入するのは難しい

参考リンク集

サルでもわかるGit入門
おなじみGit入門。今回の内容は発展編らへん。

Git初心者に捧ぐ!Gitの「これなんで?」を解説します。
使い始めてからのGitの疑問解決良エントリ

ProGit
Gitに関するドキュメントまとめ(日本語訳)

LearnGitBranching
Gitの動きを可視化、試しに触ってみて学べるサイト

コメントを残す

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