Git tutorial
Upcoming SlideShare
Loading in...5
×
 

Git tutorial

on

  • 2,055 views

社内勉強会にて使用

社内勉強会にて使用

Statistics

Views

Total Views
2,055
Views on SlideShare
2,053
Embed Views
2

Actions

Likes
4
Downloads
12
Comments
0

1 Embed 2

http://lexi02 2

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Git tutorial Git tutorial Presentation Transcript

  • Git入門 2012/7/28Hiroki Kouchi
  • 本スライドの概要初心者向けの内容 Gitとはなんぞや 実際にコマンド叩くとどうなるの 必須な操作/覚えておきたい操作などなどをお話します。
  • 対象者Gitを覚えたい人/使ってみたい人Subversionならわかるって人コマンド覚えたい人Github使ってみたい人
  • まずは自己紹介name : Hiroki Kouchiage : 26 => 社会人4年目Twitter : @_hkouchi(最近変更しました)work : iOS App Developerhobby : Development => (iOS, Android, Web)
  • では本編へ
  • Gitとはなんぞや分散バージョン管理システムLinuxの中の人が開発 Linuxカーネルのソースコード管理を 目的として開発されたらしい (By Wikipedia先生)
  • 分散型と集中型集中型バージョン管理システム Subversionとか(他を知らない。。。) 中枢となるリポジトリに各々がアクセス リポジトリが壊れると大変な事に
  • 分散型と集中型分散型バージョン管理システム Gitとか、Mercurialとか(よく知らない) ローカルにリポジトリが設置できる サーバーにもリポジトリが設置できる リポジトリ同士でマージをしながら 開発を行なっていくイメージ
  • 私のGitの印象難しい→さらっと見ただけで理解できなくて放置GUIならなんとかなるんじゃね→GUI全然 ってないコマンド多すぎ/知らない単語多すぎ
  • 私のGitの印象GUIはあることにはある(Macだと心配ないんだが・・・) Mac => SourceTree最強 Windows => Tortoise gitあたりが妥当? EclipseのプラグインでEgitなんてのも
  • 致命的だと感じてた部分学習コストが高い 現場でもGit使えない人が多い... そもそも使ってない現場が多いのでは Subversionと違って考え方が複雑 どのコマンドで何が起きるのか
  • 確かに難しいけど、 学習コスト以上のメリットがあるんです!
  • Gitの特徴ローカルでも使えるプロトタイプ作成が簡単リビジョン?なにそれおいしいの? Subversionはリビジョン単位で管理、 Gitはコミット単位で管理。
  • Gitの特徴コミットするファイルを指定できる→コミットしたくないファイルは無視できる履歴を自由に る事が可能。履歴を変更してしまう事も可能。間違ってコミットしても取り消し可能。
  • 圧倒的ではないか、 我が軍は!
  • 難しく考えなくてOKチームで運用しても結局のところ・・・ ファイルを編集する 変更点をアップする 他のメンバーは変更を落としてくるだけ
  • 以上。
  • すいませんでした。以下の2つを使いながら説明していくことにしましょう。 Terminal - コマンドを実行してみて覚えよう! SourceTree - GUIは結果確認には最適!
  • 本日のゴールひとまずの目標はGithubへのアップ Githubは1人でも使える(無料) OSSの宝庫なので知っておくと便利何となくの使い方として参考にどうぞ
  • では順番に見ていきましょう
  • initgit init で初期化 .gitというディレクトリが作成される 中身は特に意識する必要はなし プロジェクトの直下で実行する初期化後はgitコマンドでよしなに
  • commithoge.txtを編集するgit add hoge.txt # indexへ追加 indexに追加されたファイルは commit対象となるgit commit hoge.txt
  • git add -A 変更を全てindexに追加するgit commit -m “comment” 引数にコメントがつけれる なくてもコメントはつけられます
  • remotegit remote add origin git://xxxx/hoge.git サーバーにあるgitリポジトリを登録する git:/ の場合も https:/ の場合もある /... /... originって名前は規則ではない originは暗黙の了解になってるだけ (だったはず。。。)
  • pullgit pullorigin (remote) から変更を取得してmerge→svn updateみたいなコマンド似たようなコマンド→git fetch変更を取得するが、mergeしない
  • cloneURLからソースコードを落とす場合に使用svn checkout と同じようなコマンドcloneした場合、remoteが登録されている状態になってるgit clone git://xxxx/hogehoge.githttps://xxxx/hogehoge.gitってURLの場合もある
  • pushgit push origin master remoteのリポジトリへ変更を送信 他のbranchをpushすることも可能 ex). git push origin dev-kouchi
  • 以上!これでGithubが使える!
  • もうちょっとだけ1人だとあまり必要ないけど、チーム開発のときに以下の知識は必須です! branch => これは1人のときでも重要 checkout merge
  • branchソースを枝分かれさせて、別々に保存しておくことができるgit branch dev-kouchi #ブランチ作成 defaultのブランチは master master <=> dev-kouchi間は、 切り替えが可能git branch #ブランチの一覧表示
  • checkoutbranchの切り替えをコマンドgit checkout dev-kouchi #branchの切り替えsvn checkout ではないよ!同じ単語でも意味が違うので注意されたしgit branch を実行するとbranchの一覧表示
  • HEADHEAD => 現在のbranchの事HEAD^ => 現在のbranchの親HEAD^^ => 現在のbranchの親の親HEAD^^^...主にcommitの取り消しや巻戻しのときに使用
  • remote:branchリポジトリをpushしているわけなので、remoteでも作成したbranchが保持されるgit branch -r でリモートの確認ができる -a だとリモートもローカルも全部表示
  • branch がわかっていれば・・・ git pull origin dev-kouchi dev-kouchiのみpull 引数指定なしだと全部pullする
  • merge(masterブランチを見てる場合)git merge dev-kouchidev-kouchiの変更点をmasterに反映させるのがmergeコマンド。競合した場合の話はまた後程。
  • これだけ覚えれば十分!
  • 他のコマンドgit reset #mergeの取り消しgit rebase #commitを1つずつ反映するgit stash #変更中ファイルを一時的に保存git config #username, email, aliasの設定git tag #tagの設定
  • 個人でbranchを活用する 新しい機能を追加するとき 新しいライブラリ使ってみたいとき ちょっと違うUIで実装してみたいとき てな感じで、気軽に実験できるよ!
  • チームでの運用私もどういう手法がいいのかは知りません!何となく脳内にはあるけど、実践したことがない・・・ ↓非常にためになるので参考にどうぞ http://keijinsonyaban.blogspot.jp/2010/10/ successful-git-branching-model.html
  • まとめ今日覚えた事 Gitとはなんぞや Gitの操作方法 Githubへのpush方法
  • お疲れ様でした。