2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

初めてのGitHubの導入から利用方法まで。SVNとの違いも!!

Posted at

はじめに

今回のチームでの開発においてバージョン管理システムはGit(GitHub)を利用したので、
導入手順から利用方法まで説明したいと思います。
仕事ではSVNを利用しているので、SVNとの違いも語りたいと思います!!

アジェンダ

  1. Git & GitHubとは?
  2. Gitに関する用語
  3. SVNとの違い
  4. 導入メリット
  5. GitHubアカウント作成方法
  6. ブランチ作成 〜 コミット・プッシュ方法
  7. リモートリポジトリからローカルへの取り込み方法
  8. リンク集
  9. 最後に

1. Git & GitHubとは?

■ Gitとは
プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システム。
元々は、Linuxカーネルのソースコード管理に用いるために開発された。そのため大規模なリポジトリを扱いやすい。

■ GitHubとは
Gitを利用した、開発者を支援するWebサービス。
クラウド上でGitを用いたバージョン管理をすることができ、さらにGitにはない開発者に便利な機能を追加(*プルリクエストなど。)

*プルリクエスト(Pull Request)とは
ソースコードの変更点について他のメンバーにレビュー依頼ができる機能。レビューがOKとなったソースコードだけを反映させることができるので、品質の向上に役立つ。

2. Gitに関する用語

基本的な用語のみピックアップ!!

ワーキングツリー:現在作業している場所
インデックス:コミットするためのファイルを登録する場所
ローカルリポジトリ:リモートリポジトリに送るためのコミットを記録する場所
リモートリポジトリ:複数人で共有するためのリポジトリ
HEAD:今いるブランチの最新のコミットID
Origin:リモートリポジトリのアクセス先に対してGitがデフォルトでつける名前

3. SVNとの違い

Gitは分散型バージョン管理システム。
それに対して、SVNは集中型バージョン管理システム。

  • これによって何が違うかと言うと、Gitでは開発者がローカル上でソースのバージョンを管理することができる。

Gitはリモートリポジトリという本体はあるが、コミットは各開発者のローカルリポジトリにもできる。そのため分散型バージョン管理システムと言われる。
その一方、SVNはローカルリポジトリと言うものはなく、各開発者は直接リモートリポジトリにコミットするしかない。そのため、集中型バージョン管理システムと言われる。

・Git&SVNのコミットの流れ
Gitは**コミット(ローカルリポジトリへ)してから、プッシュ(リモートリポジトリへ)するのに対して、SVNは直接コミット(リモートリポジトリへ)**する。

・コマンド比較

コマンド内容 SVN Git
リポジトリの複製 checkout clone
コミット commit commit
コミット内容の確認 cat show
現在の状態の確認 statu status
変更した差分の確認 diff diff
ログの確認 log log
ファイルの追加 add add
ファイルの移動 mv mv
ファイルの削除 rm rm
ファイルの変更の取消 revert checkout / reset
ブランチの作成    copy branch
ブランチの切り替え switch checkout
ブランチのマージ merge merge
タグの作成 copy tag
ローカルの更新  update pull / fetch
リモートへの反映  commit push

4. 導入メリット

1.ローカルコミットができる。
→作業単位毎に気軽にコミットでき、編集・バグ検知しやすい。

2.ブランチが簡単に切れる
→気軽にブランチを切ることができるため、他の開発者に影響を与えず開発しやすい。
SVNのブランチとマージにはかなりの「制約」や「コスト」がかかる。

3.機能が充実し、操作体系も洗練されている
→GitHubなどのホスティングサービスも充実。コマンドも充実。

4.世界の標準はGit
→近年ではSVNを抑えて圧倒的(!?)シェア

5. GitHubアカウント作成方法

以下のサイトにアクセスし、ユーザー名、メールアドレス、パスワードを作成する。

・公式サイト
https://github.com/

6. ブランチ作成 〜 コミット・プッシュ方法

■ githubにコミット・プッシュする際の大まかな流れ(初回)
 ①ローカルリポジトリを作成し、作業内容をコミットする
 ②ローカルリポジトリにコミットした内容をリモートリポジトリにプッシュする

・①の例:”upallnight”というローカルリポジトリを作成し、moc.htmlをコミットする

1.ローカルリポジトリの作成方法

$ mkdir upallnight  (upallnightディレクトリを作成)
$ cd upallnight    (upallnightディレクトリに移動)
$ git init      (upallnightディレクトリをリポジトリに設定)

2.ローカルリポジトリにコミットを行う方法

$ git add moc.html      (gitにコミットする前にインデックスに追加)
$ git commit -m “add new file”  (gitにコミットする。コメントとして“add new file”を設定)
$ git status (gitのインデックスへの追加状態、コミットされていないものがないのかを確認できる)

・②の例:”develop/XXX”ブランチを作成し、ローカルリポジトリにコミットした内容を
AAA/BBBリモートリポジトリにプッシュする(AAA/BBBは仮のリポジトリ名)

1.ブランチの作成方法

$ git branch develop/XXX  (develop/XXXブランチを作成)
$ git checkout develop/XXX  (develop/XXXブランチに移動)
$ git branch (現在のブランチ一覧を確認できる。*がついているブランチが選択されているブランチ)

2.リモートリポジトリへのプッシュを行う方法

$ git remote add origin https://github.com/AAA/BBB.git
$ git git push origin develop/XXX

7. リモートリポジトリ最新取り込み

・初回_ブランチをローカルに丸々取り込み

git clone -b ブランチ名 https://github.com/AAA/BBB.git(リモートリポジトリ)
→ターミナル上から叩くと、カレントディレクトリにブランチをコピー

・2回目以降_差分取り込み

git fetch origin manInTheMirror
git merge FETCH_HEAD

もしくは

git pull origin manInTheMirror ←推奨しない!!!

上記、二つは同じ意味。pullコマンドはfetchとmergeのショートカットコマンドの為。
(内部で「fetchコマンド」と「mergeコマンド」を順次行ってくれている)
「fetchコマンド」で更新を取得し、内容を確認したのちに、マージ作業に取りかかるべきです。
ちなみにFETCH_HEAD とは、git fetch 実行時に保存される参照情報。

8. リンク

以下は参考にさせて頂いた記事・サイト等です。
この場をお借りしてお礼申し上げます。

・用語集
https://qiita.com/nh321/items/6517b0964c6ed1685ecf

・コマンド集
https://www.sejuku.net/blog/5816
https://qiita.com/kohga/items/dccf135b0af395f69144

・公式_GUIツール(SourceTree)
https://ja.atlassian.com/software/sourcetree

9. 最後に

業務でSVNを使っていた分、最初はコマンドの違いなどに戸惑いました。。。汗
ただ慣れてくると気軽にローカルリポジトリにコミットできバージョン管理ができるので、過去にどういう修正をしたかなど追いやすいです!
世間ではSVNよりGitの風潮なので機会があれば、まだ使ったことがない人はぜひこの機会に^^

ちなみにGitのGUIツールのSourceTreeはかなり使いやすのでオススメです!

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?