ゆるふわっGit入門

1,679 views
1,597 views

Published on

Git入門です。ゆるくふわっとGit、GitHubってなんぞや?から
バージョン管理?、Gitインストール・設定、Git基本コマンド
って感じです。

Published in: Technology

ゆるふわっGit入門

  1. 1. ゆるふわっGit入門kanazawa.rb meetup #102013/06/15初心者による超初心者Git入門1
  2. 2. 2@cotton_desuKEISUKE OHATA
  3. 3. Gitを使えると3
  4. 4. モテるらしい4
  5. 5. AgendaGitって何ですか?Gitのインストール・設定Gitの基本操作5
  6. 6. Gitって何ですか?6
  7. 7. Gitって何ですか?7Git?GitHub?う∼ん、同じような物?
  8. 8. Gitって何ですか?GitGitHub別物です8
  9. 9. Gitとは分散型バージョン管理システム開発者ごとにリポジトリを持つことが可能GithubとはGitリポジトリのホスティングサービス9
  10. 10. 10バージョン管理?
  11. 11. バージョン管理とはファイルの変更履歴を保持するシステム複数人でファイルを共有可能ファイルの特定のバージョンを取得可能11
  12. 12. 12分散型?集中型?
  13. 13. 集中型バージョン管理システムRemote Repository(ex SVN,CVS)変更変更変更Commit/CheckoutCommit/CheckoutCommit/Checkout13
  14. 14. 集中型のデメリット中央サーバが止まるとバージョン変更できない中央サーバのハードディスクが破損するとプロジェクト全体の変更履歴を失う14
  15. 15. 分散型バージョン管理システムRemote Repository(ex Github)変更addcommitLocal RepositoryPull/Push15ファイルPull/PushLocalRepository
  16. 16.  分散型のメリット外部リポジトリが止まってもバージョン変更できる外部リポジトリを失ってもローカル     リポジトリを持っているので変更履歴を   失わず、復旧も容易16
  17. 17. 分散型バージョン管理システムRemote Repository(ex Github)変更addcommitLocal RepositoryPull/Push17ファイルPull/PushLocalRepository今回の対象
  18. 18. 18はい、 Pull/Pushについて今回は話しません
  19. 19. 19ただし
  20. 20. 20git cloneはするよ
  21. 21. 21何かしらのコードがあった方がイメージでき、Gitの練習しやすい
  22. 22. Gitのインストール・設定22
  23. 23. Gitインストール公式サイトhttp://git-scm.com/最近のmacだとデフォルトインストール済23
  24. 24. Gitインストール皆の大好きな黒い画面でバージョン確認2013/6/15時点では1.8.3.1が最新$ git --version24
  25. 25. 設定git configコマンドでGitで利用する名前、メールアドレスを設定「~/.gitconfig」に出力$ git config --global user.name “Firstname Lastname”$ git config --global user.email “hoge@example.com”25$ git config --global -i-i オプションでも設定の確認可能
  26. 26. Gitの基本操作26
  27. 27. Git基本操作27Git操作を知ろう
  28. 28. 基本操作(コマンド)git init/git clonegit add/git commitgit rm/git mvgit diff28git log/git statusgit checkoutgit branchgit stash
  29. 29. リポジトリ作成git initコマンドで.gitディレクトリが作成されるGitの管理領域となる29$ git inithoge .githogegit init
  30. 30. リポジトリ作成2git cloneコマンドで外部リポジトリをコピー30$ git clone https://github.com/twitter/bootstrap.git外部リポジトリを指定git clonehoge bootstrap外部リポジトリhoge即使える
  31. 31. リポジトリ登録git addコマンドで管理対象に登録git commitコマンドで管理対象の変更をリポジトリに登録31git add git commit$ git add kanazawa.rb$ git commit -m “add first commit”管理対象 リポジトリkanazawa.rbkanazawa.rbkanazawa.rb作業フォルダ
  32. 32. コメント修正git commit --amendコマンドでエディタが開かれるので、コメント修正/保存する➡再コミット32
  33. 33. 管理対象ファイル削除git rmコマンドで管理対象からも削除33$ git rm kanazawa.rbgit rm管理対象kanazawa.rbkanazawa.rb作業フォルダ管理対象作業フォルダ
  34. 34. 管理対象ファイルリネームgit mvコマンドで管理対象も含めてファイルリネーム34$ git mv kanazawa.rb hokuriku.rbgit mv管理対象kanazawa.rbkanazawa.rb作業フォルダ管理対象作業フォルダhokuriku.rbhokuriku.rb
  35. 35. 差分表示(diff)git diffコマンドで管理対象との差分表示  管理対象に限らず、コミットに対しても可能35$ git diff$ git diff HEAD$ git diff --cashedgit diffgit diff HEAD管理対象 リポジトリkanazawa.rbkanazawa.rbkanazawa.rb作業フォルダgit diff --cashed
  36. 36. 36差分(diff)を意識して、add、commitをしましょう!!
  37. 37. コミットログ、状態表示git logコマンドでコミットログを表示git statusコマンドで管理対象、リポジトリ状態を表示37$ git log$ git statusリポジトリgit log 歴史見る git status管理対象対象見る
  38. 38. あるコミット時点の状態にするgit checkoutコマンドでコミット以降の変更をなかったことにする38$ git checkout kanazawa.rb$ git checkout <HEADまたはコミットID> kanazawa.rbリポジトリkanazawa.rbkanazawa.rb 変更git checkoutkanazawa.rb
  39. 39. 現在の作業を一時保存git stashコマンドで現在の作業を一時保存git stash listコマンドで保存リストの確認git stash applyコマンドで保存状態に戻す保存状態を省略すると直近の状態に戻す39$ git stash [save “コメント”]$ git stash list$ git stash apply [stash@{Number}]
  40. 40. 現在の作業を一時保存2git stash dropコマンドで保存リストから保存状態を削除保存状態を省略すると直近の状態を削除git stash branchコマンドでstashからブランチを作成保存状態を省略すると直近の状態から作成40$ git stash drop [stash@{Number}]$ git stash branch ブランチ名 [stash@{Number}]
  41. 41. 41kanazawa.rb作業フォルダgit stashスタッシュ(スタック)stashのイメージ
  42. 42. 42kanazawa.rb作業フォルダgit stashstash@{0}スタッシュ(スタック)stashのイメージ
  43. 43. 43stash@{0}スタッシュ(スタック)stashのイメージgit stash listリスト確認
  44. 44. 44stash@{0}スタッシュ(スタック)stashのイメージkanazawa.rb作業フォルダgit stash
  45. 45. 45スタッシュ(スタック)stashのイメージkanazawa.rb作業フォルダgit stashstash@{1}stash@{0}
  46. 46. 46スタッシュ(スタック)stashのイメージkanazawa.rb作業フォルダgit stashstash@{1}stash@{0}git stash apply
  47. 47. 47スタッシュ(スタック)stashのイメージkanazawa.rb作業フォルダgit stashstash@{1}stash@{0}git stash applykanazawa.rb作業フォルダ保存した状態に戻す
  48. 48. 48スタッシュ(スタック)stashのイメージstash@{1}stash@{0}git stash drop
  49. 49. 49スタッシュ(スタック)stashのイメージgit stash dropstash@{0}stash@{0}
  50. 50. 50スタッシュ(スタック)stashのイメージstash@{0}git stash branch
  51. 51. 51スタッシュ(スタック)stashのイメージstash@{0}git stash branch保存した状態からブランチ作成新規ブランチ
  52. 52. branch作成、移動git branchコマンドでブランチ作成git checkoutコマンドでブランチ移動52$ git branch hokuriku$ git checkout hokurikuhokurikuブランチmasterブランチA BB CD
  53. 53. branch作成、移動git branchコマンドでブランチ作成git checkoutコマンドでブランチ移動53Acommit masterブランチ
  54. 54. masterブランチbranch作成、移動git branchコマンドでブランチ作成git checkoutコマンドでブランチ移動54A Bcommit
  55. 55. masterブランチbranch作成、移動git branchコマンドでブランチ作成git checkoutコマンドでブランチ移動55$ git branch hokuriku$ git checkout hokurikuA Bbranchcheckout
  56. 56. hokurikuブランチmasterブランチbranch作成、移動git branchコマンドでブランチ作成git checkoutコマンドでブランチ移動56A BBbranchcheckout
  57. 57. hokurikuブランチmasterブランチbranch作成、移動git branchコマンドでブランチ作成git checkoutコマンドでブランチ移動57A BBcommit
  58. 58. hokurikuブランチmasterブランチbranch作成、移動git branchコマンドでブランチ作成git checkoutコマンドでブランチ移動58A BBcommitC
  59. 59. hokurikuブランチmasterブランチbranch作成、移動git branchコマンドでブランチ作成git checkoutコマンドでブランチ移動59A BB C$ git checkout mastercheckout
  60. 60. hokurikuブランチmasterブランチbranch作成、移動git branchコマンドでブランチ作成git checkoutコマンドでブランチ移動60A BB Ccommit
  61. 61. hokurikuブランチmasterブランチbranch作成、移動git branchコマンドでブランチ作成git checkoutコマンドでブランチ移動61A BB CcommitD
  62. 62. branch作成、移動git checkout -bコマンド1つでブランチ作成から移動まで可能62$ git branch hokuriku$ git checkout hokuriku$ git checkout -b hokurikuショートカット便利!!
  63. 63. 63リポジトリの軌跡はなんだか家系図に似ていますね
  64. 64. 64commit、branch、をして立派な家系図を作って行きましょう
  65. 65. gitコマンドまとめ65
  66. 66. 今後検討中ですが次回は merge、pull/pushの少なくともどちらかはやります66
  67. 67. 67ご清聴ありがとうございました

×