guiツールで送る快適な gitライフ@creators meetup #29

29

Upload: erina-mikami

Post on 03-Aug-2015

448 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: GUIツールで送る快適な Gitライフ@Creators MeetUp #29
Page 2: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

自己紹介

三上絵利菜

・日本電子専門学校 Webデザイン科 卒業・Web制作会社でエンジニア兼ディレクター・オープンソースプロジェクトSetucoCMSのリーダー

これまで

@skyguildフリーランスのWebエンジニア NEW!

Page 3: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

今日 話すこと

Page 4: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

↓GitのGUIツールを使って複雑な操作もラクラク使いこなす方法!

今日 話すこと・ 最近は非エンジニアの間にもGitが普及してる印象。

・ネット上の情報も豊富になってきた。

・しかし、ほとんどがコマンド(ターミナル操作)前提の説明。

・コマンドで複雑な操作をするのは難しい。

主にMac中心に(ごめんなさい)

Page 5: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

ご注意・各情報は 2015/06/20時点で確認しているものです。

 最新と異なる可能性がありますのでご了承ください。

・GUIツールを使用することを前提に、操作名(コマンド名)の説明を

省略している部分があります。

・もし、間違ってる部分があればやんわりとご指摘ください(́・ω・` )

Page 6: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

Gitとは?プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システム(VCS)である。

VCSとは?バージョン管理システム(Version Control System)ファイルに対して「誰が」「いつ」「何を変更したか」というような情報を記録することで、過去のある時点の状態を復元したり変更内容の差分を表示できるようにするシステムのこと。

「Git - ウィキペディア」より

「知らないと現場で困るバージョン管理システムの基礎知識 - @IT」よりhttp://www.atmarkit.co.jp/ait/articles/1305/20/news015.html

Page 7: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

リポジトリファイルやバージョン管理情報などの保管場所

ブランチ並行して別々の履歴を持つことができる機能

タグ 更新のタイミングなど何らかのポイントとなる箇所を記録する機能

マージブランチ通しや、リモート・ローカル間のcommitを合体する

Git の基本用語

Page 8: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

clone/pullリモートの内容をローカルにもってくる、初回をclone、初回以降をpull という

add(index/stage)変更したファイルをステージングエリアへ追加ステージングエリアの時点ではまだリポジトリには影響ない

commitaddされた(ステージングエリアの)内容で変更を確定するローカルリポジトリに履歴として記録される、リモートには影響はない

pushローカルのcommitをリモートに反映する

Git の基本用語

Page 9: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

集中型 分散型

代表的なVCS: SVN、CVSなど・リポジトリがひとつ・リモートリポジトリを介してしか ファイル管理がおこなえない

代表的なVCS: Git、Mercurial など

・リポジトリが複数

・ローカル(一人ひとり)のリポジトリで

 ファイルの管理が行える

集中型と分散型

リモートリポジトリ

リモートリポジトリ

ローカルリポジトリ

ローカルリポジトリ

ローカルリポジトリ

Page 10: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

黒い画面でコマンド打ってたのが・・・

こう!

GitのGUI ツール

Page 11: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

・有料:¥5,999/人・Gitクライアント・GitHub, Beanstalk, Bitbucketと連携可・メニューが英語・高機能・操作性が優れていてわかりやすい (個人的感想)・30日のトライアル有り

・無料・Git, Mercurial クライアント (SVNも使える )・GitHub, Bitbucket, Stashと連携可・メニューなど日本語に対応・できること自体は大体Towerと同じ・日本語なのがちょっぴりわかりやすい (個人的感想)

Tower と SourceTree比較

http://www.git-tower.com/ https://www.sourcetreeapp.com/Tower(Mac) SourceTree

Page 12: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

Tower と SourceTree比較Tower

Page 13: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

SourceTree

Tower と SourceTree比較

Page 14: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

操作紹介:基本コマンド

Page 15: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

Tower:clone

1.ダッシュボードで「Clone」をクリック

Page 16: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

2.それぞれ設定し、「Clone」をクリック

A:リポジトリURL(SSH)  コピーしてきたSSHのアドレスB:GitHubやBitbucket のアカウントC:SSHの秘密鍵を選択D:ローカルのcloneしたい場所を選択

3.リポジトリの画面にCloneしたリポジトリが表示される

A

BC

D

Page 17: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

SourceTree:clone

1.ダッシュボードで「New Repository」>「Clone from URL」をクリック

2.それぞれ設定し、「Clone」をクリック

A:リポジトリURL(SSH)  コピーしてきたSSHのアドレスB:ローカルのcloneしたい場所にリポジトリ名でフォルダを作り選択

A

B

Page 18: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

3.リポジトリの画面にCloneしたリポジトリが表示される

Page 19: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

SourceTree:pull

1.リポジトリの画面で「Pull」ボタンをクリック2. リポジトリ、ブランチがあっていれば、基本的には「OK」を押すだけ

1.リポジトリの画面で「Push」ボタンをクリック2. リポジトリ、ブランチがあっていれば、基本的には「OK」を押すだけ

SourceTree:push

Page 20: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

操作紹介:ちょっと難しいやつ

SourceTreeだけ紹介

Page 21: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

変更の一部だけをaddする:add -p

コマンドだとこんな感じ

1つずつyes/noしていくのがすごいめんどい

Page 22: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

変更の一部だけをaddする:add -p

1.「作業コピー」に変更した行が表示される

2. 必要な行(Hunkという単位)の「Hunkをステージへ移動」をクリック

Page 23: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

3.「 作業ツリー」と「ステージ」の両方にファイルが表示される

4.「ステージ」のファイルを見ると先ほど選択したHunk だけステージされてる

のが確認できる

Page 24: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

特定のCommitだけmergeする:git cherry-pick

コマンドだとこんな感じ

コミットIDを指定するのだが、コミットID探すのめんどい

Page 25: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

1.コミットの一覧から特定のコミットを選択して右クリック

2.「チェリーピック」をクリック

特定のCommitだけmergeする:git cherry-pick

Page 26: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

3.「OK」をクリック、競合がなければ以上!

Page 27: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

その他

・チェックアウト  → 特定のコミットから新規ブランチ作成

・リセット → コミット前の加えた変更のリセットや、  特定のコミットまでのロールバックなど

・スタッシュ → コミット前の変更の一時退避

Page 28: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

GUIツールを使って、快適なGitライフを送りましょう♪

Page 29: GUIツールで送る快適な Gitライフ@Creators MeetUp #29

ご静聴ありがとうございました!