skillup

技術ブログ

Git

gitの紹介と基本的な使用法について

投稿日:

旧来のソース管理方法

旧来ソースの更新では日付を使って管理する方法などが一般的でした。今でもweb製作の現場などではそのようなソースの管理方法で対応している現場も多いと思います。

この方法は簡便な反面、

  • どのような変更をおこなったのかがわからず、履歴を追えない
  • 戻すときに手作業で行うため人的ミスが発生しやすい
  • ルールの統一化が難しい

などさまざまな弊害が起こります。

バージョン管理ツール

そんな状況からか近年ではソースの管理に関してはバージョン管理ツールを使うことが一般的です。

バージョン管理とは?

バージョン管理ツールとはソースの更新に対して変更履歴を記録しておけるツールです。このようなツールでソース管理することで

  • 誰が、いつ、どのような変更を、なぜ行ったかがすぐわかる
  • ソースが肥大化しない
    (似たような名前で日付が違うソースが乱立するということがありません。)
  • バグが発生したときなど決まったバージョンに容易に戻すことができる

といったようなメリットが存在します。

有名なバージョン管理ソフト

バージョン管理ツールで有名なものといえば、SubversionとGitですね。
Subversionは一箇所のサーバーでソースを一元管理しておく「集中型バージョン管理システム」です。逆にそれぞれのローカル環境で個々に環境を構築することのできる「分散型バージョン管理システム」がGitです。

近年は分散型のメリットが大きいことからGitのシェアが高まりつつあります。

Gitの基本的な使用法

ここでは私が使用したGitの使用法について簡単に書かせていただきます。

初期化(git init)

Gitにおいてまず行うことは初期化です。ソースの変更の履歴などを保存しておくディレクトリのことをリポジトリといい、各プロジェクトごとにリボジトリを作成します。そのリポジトリの作り方ですが、プロジェクトの直下のディレクトリに移動し、
git initでOKです。

(ちなみにローカルではなく、共有リポジトリの場合はgit init –bare –shared)です。

基本的な使用法(add→commit→push&pull)

gitを使った基本的なファイル更新は
git add ファイル名
(カレントディレクトリ以下を全てaddする場合はgit add . )

git commit –m “変更するときの文言”
これが一番使うコマンドですね。基本的な1つの変更記録のことをコミットといい、addとcommitはほぼワンセットになります。

またこれまでは基本的にローカル環境下のソースの更新について行ってきましたが、ローカルの変更記録を共有リポジトリに反映させることをプッシュといいます。
まずリモートの登録をして見ましょう。(リモートの登録方法は下記の通りです。)

git remote add origin ssh://ユーザー名(:パスワード)@ホスト名:ポート番号(22がディフォルト)/リポジトリのディレクトリ

パスワードはかいてあればpush時に聞かれることはありません。なければpush時に聞かれることになります。

git remote –vで確認です。
また変更履歴を反映させるには
git push
になります。

逆に共有リポジトリのソースの変更履歴を取り込むときは
git pullになります。

基本的には自分が変更をして、反映させるときは
git add .
git commit –m “メッセージ”
git push

リモートの変更履歴を取り入れるときは
git pull
になります。

これらのコマンドが日常的に使うコマンドかと思われます。

gitの設定

なお、使用するときに下記のような設定をしておきましょう。

ちなみに

git config –global –list

で設定されている情報を見ることができます。

さらに細かい設定が気になる場合はここを見ましょう。

https://git-scm.com/book/ja/v1/Git-%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA-Git-%E3%81%AE%E8%A8%AD%E5%AE%9A

変更履歴の参照(git log)

上記の4コマンドで基本的な作業は終わりです。
ただ変更履歴をみたいこともあると思います。そのときに使われるのが
git logです。
こちらのコマンドもさまざまなオプションがあり、より詳細にみたり、変更履歴を確認したりとさまざまな参照方法があります。

修正系の処理(revert,reset,rebase)

順調にやっていればこのままでOKですが、過去のコミットを打ち消したいとき、戻したいとき、履歴そのものを変更したいときなどあると思います。

まず過去のコミットの打ち消しですが、
git revert です。(ただし戻したという履歴自体が残ります。)
次に、過去のコミットに戻したいときは
git resetです。このコマンドは純粋にファイルやコミットを戻します。また戻し方によっても様々なオプションが存在します。
また過去の履歴を直接編集したいときはgit rebase –i HEAD~~数字を使います。
(数字はどれぐらい過去のバージョンまで戻るかです。)

コマンドを入力するとエディタが開くので履歴自体の削除や2つのコミットを1つ分に統合することなどができます。

こんなところかなー他にもいっぱいコマンドはありますし、それぞれのコマンドには様々なオプションがついていますが、今回は要点をまるっとまとめるのがポイントだったので割愛します。

Gitの設定

またgitの設定をしておきましょう。(そうしないと色がでません。)

http://d.hatena.ne.jp/nabnab/20100805/1281015625

 

-Git
-

執筆者:


comment

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

関連記事

no image

gitのfetchに関して

gitでリモートの変更を取り込む場合、大きく分けるとfetchとpullがあります。 両者の違いですが、 fetch=一度、変更を取り込んで、ローカルの変更と相違点を確認できます。確認後mergeを行 …

no image

gitの作業ディレクトリ・インデックス・HEADに関して

gitを使い始めてしばらくたちますが、まだ明確なイメージがつかめていないです(汗) みようみまねでやっていて、ポイント、ポイントで困ったことは検索してなんとか対応してきましたが、体系的な理解ができてい …

no image

Gitで統合 merge関連

本日はずっとブランチ間の統合を行っておりました。 たとえばhogeブランチとfooブランチの統合をする場合、差分を最初に確認すると思いますが、 [crayon-5bee4e9ff202a0535545 …

no image

JSリンク集+git ブランチ指定 clone

現状の私の課題としてUIに対する意識が甘いということが上げられます。 大昔のサイトで使っているようなわかりにくいUIをそのまま使っているんですよね。 UIといってもいろいろな要素が必要となってきますが …

no image

gulpに関して

gulpに関しての復習と色々と間違っていたところもあるのでまとめ。 ちなみに以前書いた記事は下記 gulpインストールとタスクの実行 Contents1 インストール2 タスクの実行3 npxコマンド …