Gitを使ってみよう

1,378 views
1,253 views

Published on

Summary of Git.

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,378
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
11
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Gitを使ってみよう

  1. 1. gitを使ってみよう git: the fast version control system 古屋 保(@tamochia) 29 March 2012 K-Ruby 1
  2. 2. ソースコードのバージョン管理 といえば…$ cp -Rp hoge hoge_20120321 2
  3. 3. gitとは• ソースコードを管理するためのオープンソースの 分散型バージョン管理システム• 元々はLinuxカーネルのソースコードを管理する 目的で開発された• 開発者ごとにローカルリポジトリを持つことが 可能【参考文献】1. Travis Swicegood著,でびあんぐる監訳,「入門git」,オーム社,20092. 岩松信洋,上川純一,まえだこうへい,小川伸一郎,「Gitによるバージョン管理」,オーム社,2011 3
  4. 4. 分散型バージョン管理システム remote repository push pull local local repository repository B A 4
  5. 5. 最初にやっておくこと git config • Gitで利用する名前とメールアドレスを設定 • 「~/.gitconfig」に書き込まれる$ git config --global user.name "hoge hoge"$ git config --global user.email hoge@gmail.com$ git config --global color.ui auto$ git config --global -l 5
  6. 6. リポジトリの作成 git init$ cd HelloApp$ git init local repository 6
  7. 7. リポジトリへの登録 git add, git commitworking tree index local repository hello.c hello.c hello.c Makefile Makefile Makefile git add git commit git commit -m "Message" 7
  8. 8. 管理外のファイルを無視する .gitignoreworking tree index local repository hello.c hello.c hello.c Makefile Makefile Makefile hello.o hello .gitignore hello.o hello 8
  9. 9. 差分を出力する git diffworking tree index local repository hello.c hello.c hello.c Makefile Makefile Makefile hello.o git diff git diff HEAD hello HEADは最新コミット .gitignore .gitignore .gitignore 9
  10. 10. コミットログと状態の表示 git log, git status• コミットログの表示✦ git log✦ git log --oneline --decorate✦ git log --oneline --graph• ワーキングツリー及びリポジトリの状態表示✦ git status 10
  11. 11. コミットをなかったことにする git resetHEAD^^^ HEAD^^ HEAD^ HEAD38a123~ 4a8931~ 13ea90~ 124b34~ A B C D 最新コミット git reset --hard HEAD^^ HEAD^ HEAD38a123~ 4a8931~ A B 最新コミット 11
  12. 12. コミットをなかったことにする git resetworking tree index local repository hello.c hello.c hello.c git reset --soft HEAD^ ワーキングツリー は影響無し foo.c foo.c foo.c git reset --mixed HEAD^ 12
  13. 13. コミットを前の状態に戻す git revert HEAD^^^ HEAD^^ HEAD^ HEAD 38a123~ 4a8931~ 13ea90~ 124b34~ A B C D 最新コミット $ git revert HEAD^^ $ git commit -m "E" Bのコミット 状態で最新「変更」の履歴が残る38a123~ 4a8931~ 13ea90~ 124b34~ 342b34~ A B C D E 13
  14. 14. ブランチを利用する git branch, git checkout A B masterブランチ C develブランチ$ git branch devel master 「branch」…ブランチの作成$ git checkout devel : 「checkout」…ブランチの切替え$ git commit -am "C" 14
  15. 15. ブランチのマージ git merge masterA B E ブランチ マージ C D devel ブランチ $ git checkout master $ git merge devel 15
  16. 16. ブランチのマージ git merge masterA B D F ブランチ マージ C E devel ブランチ $ git checkout master $ git merge devel <コンフリクトが起こる可能性有り> 16
  17. 17. ブランチのリベース git rebase masterA B D ブランチ devel C E ブランチ $ git checkout devel $ git rebase masterA B D masterブランチに追従 devel C E ブランチ 17
  18. 18. リモートリポジトリの登録 git remote add remote repositoryreposv $ git remote add origin ssh://hoge@reposv/HelloApp.git local repository A $ git remote add github git@github.com:hoge/HelloApp.git 18
  19. 19. リモートリポジトリとのやり取り git push, git pull remote repository$ git push origin master $ git pull origin master local local repository repository A B 19
  20. 20. リモートリポジトリのクローンをコピーする git clone reposv remote repository$ git clone ssh://hoge@reposv/HelloApp.git $ git clone git://github.com/hoge/HelloApp.git 20
  21. 21. リモートリポジトリとしてDropboxを 利用する方法 remoterepository ~/Dropbox/repos/HelloApp.git $ mkdir ~/Dropbox/repos/HelloApp.git $ cd ~/Dropbox/repos/HelloApp.git/ $ git init --bare bare オプションにより,ワーキングツリー無しの リモートリポジトリを作成する. localrepository A 既にローカルリポジトリが存在するマシンでの登録方法 $ git remote add origin ~/Dropbox/repos/HelloApp.git 新しいマシンでの登録方法 $ git clone ~/Dropbox/repos/HelloApp.git 21
  22. 22. まとめ• 覚えるコマンド1.git config 10.git branch2.git init 11.git checkout3.git add 12.git merge4.git commit 13.git rebase5.git diff 14.git remote add6.git log 15.git push7.git status 16.git pull8.git reset 17.git clone9.git revert 22

×