Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

of

Gitのよく使うコマンド Slide 1 Gitのよく使うコマンド Slide 2 Gitのよく使うコマンド Slide 3 Gitのよく使うコマンド Slide 4 Gitのよく使うコマンド Slide 5 Gitのよく使うコマンド Slide 6 Gitのよく使うコマンド Slide 7 Gitのよく使うコマンド Slide 8 Gitのよく使うコマンド Slide 9 Gitのよく使うコマンド Slide 10 Gitのよく使うコマンド Slide 11 Gitのよく使うコマンド Slide 12 Gitのよく使うコマンド Slide 13 Gitのよく使うコマンド Slide 14 Gitのよく使うコマンド Slide 15 Gitのよく使うコマンド Slide 16 Gitのよく使うコマンド Slide 17 Gitのよく使うコマンド Slide 18 Gitのよく使うコマンド Slide 19 Gitのよく使うコマンド Slide 20 Gitのよく使うコマンド Slide 21 Gitのよく使うコマンド Slide 22 Gitのよく使うコマンド Slide 23 Gitのよく使うコマンド Slide 24 Gitのよく使うコマンド Slide 25 Gitのよく使うコマンド Slide 26 Gitのよく使うコマンド Slide 27 Gitのよく使うコマンド Slide 28 Gitのよく使うコマンド Slide 29 Gitのよく使うコマンド Slide 30 Gitのよく使うコマンド Slide 31 Gitのよく使うコマンド Slide 32 Gitのよく使うコマンド Slide 33 Gitのよく使うコマンド Slide 34 Gitのよく使うコマンド Slide 35 Gitのよく使うコマンド Slide 36 Gitのよく使うコマンド Slide 37 Gitのよく使うコマンド Slide 38 Gitのよく使うコマンド Slide 39 Gitのよく使うコマンド Slide 40 Gitのよく使うコマンド Slide 41 Gitのよく使うコマンド Slide 42
Upcoming SlideShare
15分でわかるGit入門
Next
Download to read offline and view in fullscreen.

61 Likes

Share

Download to read offline

Gitのよく使うコマンド

Download to read offline

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Gitのよく使うコマンド

  1. 1. Gitのよく使うコマンド
  2. 2. よく使うコマンド init add commit push clone branch checkout fetch merge rebase pull status rm reset remote tag log mergetool revert 19個
  3. 3. init 現在の場所にリポジトリを作成する mkdir foobar; cd foobar; git init
  4. 4. add 対象をバージョン管理に追加する ワイルドカードを使う git add **/*.php 強制的に追加 git add -f foobar.php 部分的に追加 git add -i foobar.php
  5. 5. commit ローカルブランチへの反映 git commit 全部追加した上でコミットする(非推奨) git commit -a 直前のコミットにコミットする git commit --amend
  6. 6. commit ローカルブランチへの反映 コミット時に起動するエディタは次の環境変数で指 定する ● GIT_EDITOR ● EDITOR e.g.) export EDITOR=vim エディタを起動せずにコミットする git commit -m "message"
  7. 7. push リモートサーバへの反映 git push <remotename> <refspec> ローカルブランチと同名のブランチをリモート上に 作成する git push <remote> <localbranch> 別名でpushする git push <remote> <localbranch>:<remotebranch> <refspec>は<localbranch>:<remotebranch>
  8. 8. push リモートサーバへの反映 リモートブランチを削除する git push --delete <remote> <branchname> git push <remote> :<branchname> プッシュしたリモートブランチをトラッキングする git push -u <remote> <branchname> 強制的にプッシュ git push -f <remote> <branchname>
  9. 9. push リモートサーバへの反映 タグをプッシュする git push --tags <remote> リモートサーバのタグを削除する git push --delete <remote> tag_name git push <remote> :tag_name
  10. 10. push 注意事項 git push(remoteとブランチの指定なし)はトラッキ ングしているローカルブランチを全てプッシュしてし まうので、とても危険です デフォルトではcurrent branchだけプッシュするよう にする設定で安全運用 git config --global push.default upstream
  11. 11. clone リポジトリのコピーを作成する sshを利用 git clone ssh://[user@]host[:port]/path/to/repo.git/ git clone [user@]host:path/to/repo.git/ httpsを利用 git clone http[s]://host[:port]/path/to/repo.git/ ローカル git clone [file://]/path/to/repo.git/
  12. 12. branch ローカルブランチを作成/削除する ローカルブランチの一覧 git branch リモートブランチの一覧 git branch -r <remote> 全てのブランチの一覧 git branch -a
  13. 13. branch ローカルブランチを作成/削除する ローカルブランチの作成 git branch <branchname> ローカルブランチの削除 git branch -d <branchname> git branch -D <branchname> リモートブランチの削除 git branch -r -d <remote>/<branchname>
  14. 14. branch ローカルブランチを作成/削除する ブランチの移動(名前変更) git -m <oldbranch> <newbranch> git -M <oldbranch> <newbranch> トラッキング先を設定する git branch --set-upstream <local_branch> <remote_branch> これをするとgit push/pullの時にリモートブランチ名 を指定しなくても、設定したブランチに対して実行し てくれます。
  15. 15. checkout ブランチを取得する git checkout <branch> ブランチを作成してチェックアウト git checkout -b <newbranch> [<startpoint>] リモートブランチのトラッキングブランチを作成してチェックアウト git checkout -t <remote>/<branch> コミット前の変更を取り消す git checkout <path> ...
  16. 16. fetch リモートの状態を更新する git fetch <remote> 全てのリモートブランチを更新する git fetch --all 更新後に、リモートサーバ上に存在しないリモート ブランチを削除する git fetch ( -p | --prune )
  17. 17. merge ブランチを取り込む git merge <branch> fast-forwardしない git merge --no-ff <branch> マージのログを1つに圧縮する git merge --squash <branch>
  18. 18. merge fast-forwardとは 通常はこうなる1つのコミットとして扱われる A---B---C topic / D---E---F---G---H master fast-forwardではログを先頭にくっつけてマージす る A---B---C topic / D---E---F---G---A'---B'---C' master
  19. 19. merge fast-forwardとは topicのなかにmasterの変更が全て入っている場 合、これをfast-forwardな関係と言います。 C---D---E topic / A---B master この状態でマージを行うと、次のようになります。 A---B---C---D---E master, topic
  20. 20. merge fast-forwardとは 逆にtopicのなかにmasterの変更が全て入っていない場合、 fast-forwardな関係にはなりません。 C---D---E topic / A---B---F---G master この状態でマージを行うと、コミットマージが作られて、次のよう になります。 C---D---E topic / A---B---F---G---H master # SVNはこの形ですね
  21. 21. merge squashとは squashはマージですが、通常のコミットとして扱います。 C---D---E topic / A---B---F---G master 例えば上記の状態で、git merge --squash topicとすると下記の 状態になります C---D---E topic / A---B-------------F master FにはC, D, Eの変更が含まれています
  22. 22. merge fast-forwardかno-ffかsquashか リポジトリの運用ポリシーにより使い分ける ffの場合ログが汚染され、機能追加やバグ修正のコミットがどこ からどこまでなのか分かりづらくなるたね、個人的no-ffだけで 運用して問題ないと思っています。 A successful Git branching model でもno-ffが推奨されてるよ! 邦訳: http://goo.gl/xFd5g
  23. 23. rebase ブランチを統合する git rebase <branch> 次の状態が C---D---E topic / A---B---F---G master こうなります C'---D'---E' topic / A---B---F---G master
  24. 24. rebase コンフリクトが発生したら rebase中にコンフリクトが発生した場合、rebaseが中断され、コ ンフリクト解決フェイズになります。 解決処理後、rebaseを再開するか中断するかそのコミットをス キップするか選択します。 マージコミットを作成して再開 git rebase --continue 中断 git rebase --abort 今のパッチをスキップして再開 git rebase --skip
  25. 25. rebase 履歴を改竄する 過去のコミットを分割したりまとめたりできます。 基本的にはサーバにプッシュする前に、ログを綺麗にするため に使います。 rebase -i <commit> サーバにプッシュ後は、他のブランチのマージやリベースの関 係が崩れる恐れがあるので、絶対に行ってはいけません
  26. 26. pull fetch & merge git pull [<remote>] [<branch>] 次の2つは等価です git pull origin master git fetch origin && git merge origin/master 次の設定をしていると、git pullだけで<remote>と<branch> を自動解決してくれます。 git branch --set-upstream <localbranch> <remote>/<remoptebranch>
  27. 27. pull fetch & rebase mergeの代わりにrebaseを使うこともできます。 git pull --rebase <remote> <branch> git pull --rebaseは1.7.2で導入されたもので、比較 的新しいオプションです。 今まではmergeしか選択できませんでしたが、これ にはいくつかの問題がありました。
  28. 28. pull mergeで処理される問題 mergeとrebaseの違いは先程の説明通りです。 pullを行う目的は、リモートブランチの変更をトラッ キングしているローカルブランチに取り込むことし かありません。 つまりはローカルブランチの更新です。 ただ追跡しているだけなのに、マージコミットが作 成されると、タイムライン上はリモートブランチと ローカルブランチは別物扱いとなってしまいます。
  29. 29. pull いちいち--rebaseを打つのがメンドイ メンドイのでデフォルトでrebaseを使うように設定します。 <branch>に対するpullでは--rebaseを行う git config branch.<branch>.rebase true トラッキングブランチの作成時の上記の設定を自動で付与する。 git config --global branch.autosetuprebase always 1.7.9以降の場合は次の設定も使える git config --global pull.rebase true この場合、git config branch.<branch>.rebase.falseとすると、 <branch>に対するpullだけはmergeで行われる。
  30. 30. status 現在のステージングの状態を見る git status 慣れたら git status -sb
  31. 31. rm 削除する git rm <file> ディレクトリを削除する git rm -r <dir> ステージングから削除する git rm --cached <file>
  32. 32. reset 現在から過去を取り消す 直前のコミットをステージングの状態まで戻す git reset --soft HEAD~ 直前のコミットを完全に戻す git reset [--mixed] HEAD~ 直前のコミットを完全に戻して、untrackなものは削除する git reset --hard HEAD~ <commit>まで戻す git reset ( --soft | --mixed | --hard ) <commit>
  33. 33. reset 現在から過去を取り消す 直前のマージを取り消す git reset --hard ORIG_HEAD インタラクティブモードで部分的に戻す git reset ( -p | --patch ) <commit>
  34. 34. remote リモートの管理 リモートの追加 remote add <name> <url> リモートの削除 remote rm <name> リモートサーバ上に存在しないリモートブランチの削除 remote prune <name>
  35. 35. tag タグの管理 タグの作成 git tag <tagname> [<commit>] タグの削除 git tag -d <tagname> 署名付きタグの作成 git tag ( -s | -u <key_id> ) <tagname>
  36. 36. log ログを見る デフォルト git log ハッシュと派生したブランチを見やすくしたい git log --oneline --decorate 変更されたファイルとパッチも表示しちゃう git log --stat git log --patch-with-stat
  37. 37. mergetool ツールを利用したコンフリクトの解決 git mergetool git config --global merge.toolで設定したツールで 3wayマージを行う。
  38. 38. revert 過去コミットを取り消す git revert <commit> 過去のコミットを取り消すために、逆マージをしま す。 resetやrebase -iと違い、歴史を改竄せずに、取り 消したというコミットを残します。
  39. 39. これでもまだほんの一部 1.7.11.3時点でのコマンド数: 152 add diff lost-found prune-packed shortlog add--interactive diff-files ls-files pull show am diff-index ls-remote push show-branch annotate diff-tree ls-tree quiltimport show-index apply difftool mailinfo read-tree show-ref archive difftool--helper mailsplit rebase stage bisect fast-export merge receive-pack stash bisect--helper fast-import merge-base reflog status blame fetch merge-file relink stripspace branch fetch-pack merge-index remote submodule bundle filter-branch merge-octopus remote-ext svn cat-file fmt-merge-msg merge-one-file remote-fd symbolic-ref check-attr for-each-ref merge-ours remote-ftp tag check-ref-format format-patch merge-recursive remote-ftps tar-tree checkout fsck merge- resolve remote-http unpack-file checkout-index fsck-objects merge-subtree remote-https unpack-objects cherry gc merge-tree remote-testgit update-index cherry-pick get-tar- commit-id mergetool repack update-ref clean grep mktag replace update-server-info clone hash-object mktree repo-config upload-archive column help mv request-pull upload-pack commit http-backend name-rev rerere var commit-tree http-fetch notes reset verify-pack config http-push p4 rev-list verify-tag count-objects imap-send pack- objects rev-parse web--browse credential-cache index-pack pack-redundant revert whatchanged credential-cache--daemon init pack-refs rm write-tree credential-store init- db patch-id send-pack daemon instaweb peek-remote sh-i18n--envsubst describe log prune shell
  40. 40. ネットで読めるいいもの ProGit http://git-scm.com/book/ja Gitをボトムアップから理解する http://goo.gl/1qPB4 A successful Git branching model http://goo.gl/xFd5g
  41. 41. 書籍 入門Git http://amzn.to/N8YyXQ 入門git http://amzn.to/SevHoh Gitによるバージョン管理 http://amzn.to/OMG8Zo
  42. 42.       ._        \ヽ, ,、         `''|/ノ          .|      _   |      \`ヽ、|       \, V          `L,,_          |ヽ、)  ,、         /    ヽYノ        /    r''ヽ、.|       |     `ー-ヽ|ヮ       |       `|       |.        |       ヽ、      |         ヽ____ノ         /_ノ ' ヽ_\       /(≡)   (≡)\      /::::::⌒(__人__)⌒::::: \      |     |r┬-|     |      \      `ー'´     /      /          \      (  |          |  )      \|    э    |/        (    ,,,,    ,ノ        \  、(U)ノ ノ          \/  /            ┼ヽ  -|r‐、. レ |          /  /\            d⌒) ./| _ノ  __ノ
  • azusaojima

    Apr. 9, 2020
  • takahashi3

    Mar. 10, 2020
  • ssuserdbc0ae

    Jun. 23, 2019
  • tatsuyaenmanji

    Mar. 28, 2018
  • ryouhei222

    Jun. 30, 2017
  • mizukiizuna

    Nov. 16, 2016
  • SoutaroOokata

    Aug. 10, 2016
  • nawolets

    Jun. 12, 2016
  • binomcoef

    May. 10, 2016
  • zatoshi_ss

    May. 9, 2016
  • igei-yh

    Apr. 24, 2016
  • tocy.net

    Jan. 5, 2016
  • yukiyasunakamura

    Nov. 17, 2015
  • t-idf

    Nov. 7, 2015
  • foldrr

    Nov. 7, 2015
  • yuukiebihara79

    Sep. 21, 2015
  • KoheiOuchi

    Jul. 28, 2015
  • arika_nashika

    Jun. 17, 2015
  • ShigeoToyama

    May. 21, 2015
  • YukioUeda

    Feb. 28, 2015

Views

Total views

164,174

On Slideshare

0

From embeds

0

Number of embeds

143,063

Actions

Downloads

289

Shares

0

Comments

0

Likes

61

×