Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Git 入門(2014/1/10 社内勉強会)

Git 入門(2014/1/10 社内勉強会)

社内で SVN が利用されていたなかで、いずれ git へ移行するために勉強してみようという趣旨での発表でした。現在の社内標準VCSは git であり、git-svn を利用する必要もなくなりました。

Avatar for Yoko TAMADA

Yoko TAMADA

January 10, 2014
Tweet

More Decks by Yoko TAMADA

Other Decks in Programming

Transcript

  1. Agenda バージョン管理システム いろいろ Git の学習 Git の設定(Tips) git-svn 使ってみた GUI

    で git 書いていて気づく、 サーバ側の話はほとんどわかってない… リポジトリ?ホスティングサ(ry -----------------------------
  2. Git の学習:入門編 まずはここから! サルでもわかるGit入門
 http://www.backlog.jp/git-guide/ 『入門git』ーオーム社
 Travis Swicegood 著・でびあんぐる 訳

    便利なチートシート ※オンライン Git Cheatsheet
 http://ndpsoftware.com/git-cheatsheet.html -------*---------------------
  3. Git の学習:その他 Windows 環境への導入、どの方法が一番いいのか よくわからない… Windows ユーザ向け Git 入門 -

    CodeZine
 http://codezine.jp/article/corner/479
  2013年10月頃の連載。まとまってて良さそう
 ---------*-------------------
  4. Git の学習:合わせて読みたい いつやるの? git入門
 http://www.slideshare.net/matsukaz/git-17499005
  仕組みから丁寧に説明あり! こわくない Git
 http://www.slideshare.net/kotas/git-15276118 デザイナのためのGit入門


    http://www.slideshare.net/dsuket/git-16343460 GitHubを使ったプログラマとデザイナーのイテ レーティブな開発フロー
 http://bit.ly/1euxdZI
  Git の学習とはちょっと違いますが! ----------*------------------
  5. ※ローカルでバージョン管理するだけなら (Macは最初からgitコマンド入ってますよ) 例:利用中のフォルダをgitで管理する $ cd path/to/work $ git init #

    git管理ファイルを作成 $ git add . # すべてのファイルをINDEXに追加する $ git status # INDEXの状態を見てみよう $ git commit -m "gitでバージョン管理始めます!" $ git log # コミットログを確認 $ git status # INDEXの状態をもう一度見てみる -----------*-----------------
  6. Git の設定:これだけはやっとけ編 ユーザ情報の設定 $ git config --global user.name "Yoko TAMADA"

    $ git config --global user.email [email protected] 設定しておかないとコミットのたびに懇切丁寧な
 設定方法が表示されます。 --------------*--------------
  7. Git の設定:これだけはやっとけ編 git merge の設定(--no-ff) # master 上で git merge

    するときは常に --no-ff $ git config branch.master.mergeoptions "--no-ff" # git merge するときは常に --no-ff $ git config --global merge.ff false fast-forword 状態でも必ずマージコミットを残す。
 参考:図で分かるgit-mergeの--ff, --no-ff, --squashの違い ---------------*-------------
  8. Git の設定:これだけはやっとけ編 git push の挙動(git-svn では関係ない) $ git config --global

    push.default matching # or $ git config --global push.default simple 同期先(リモート)にあるブランチと、ローカルブランチの upstream が一致していたら push できる(simple)、等
 参考:gitのpush.defaultに関するノウハウ ----------------*------------
  9. Git の設定:これだけはやっとけ編 除外ファイル # .gitignore ファイルを作成して除外条件を記述する # global に設定したい場合は以下のように、 #

    global 用の .gitignore ファイル名を指定する $ git config --global core.excludefile "~/.gitignore" igonore設定まえにうっかりINDEXに登録(add)してしまっ た場合は「INDEXから削除する」操作が必要になります。
 (ファイルを削除してコミット、ではignoreにならない) -----------------*-----------
  10. Git の設定:これだけはやっとけ編 日本語ファイルを扱うために # UTF8-MAC対策(濁点などを正しく判断させる) $ git config --global core.precomposeunicode

    true # git コマンドでファイル名が数値コード化されないように $ git config --global core.quotepath false # git用 GUI ツールのデフォルトエンコーディング設定 $ git config --global gui.encoding utf-8 内部エンコーディングがUTF-8で揃っていれば(一応)大丈夫。
 Windowsでも最新のmsysgitはUTF-8対応しているので安心。 ------------------*----------
  11. Git の設定:便利だよ編 設定ファイルの include $ git config --global include.path "~/.gitconfig.local"

    たとえば dotfile をリポジトリで管理している場合に、環境ごとに 変わる config は外出ししてリポジトリから除外しておく、等できる。 --------------------*--------
  12. Git の設定:便利だよ編 alias 設定 [alias] co = checkout ch =

    checkout st = status br = branch ls = log --oneline --color -n 10 la = log --oneline --decorate --color -n 10 ll = log --decorate --color -n 5 lg = log --oneline --graph --color -n 10 logc = log --color logg = log --oneline --graph --color sts = status -s git のサブコマンド(add とか log とか)の alias が書けます。
 ↑は自分の設定内容より。ログ系いろいろ(*ノω・*)テヘ ---------------------*-------
  13. git-svn 使ってみた 所感 ローカル環境は完全に git!(∩´∀`)∩ワーイ
 リモートと関係したい時だけ git-svn を使う。 観測範囲=自分ONLYな現時点では特に問題なし。 


    SVN側のブランチルールはこれまで通りとしてい る。 ただし(SVNの)ブランチでの作業しか実施できて いないので、
 今後 trunk に merge して他の人がそれを取得 してゴニョゴニョ…となっていったときに問題が 爆発する可能性がなきにしもあらず…(gkbr ------------------------*----
  14. git-svn 使ってみた やったこと@SocialPlus ※別途メモを共有します リモート(SVN リポジトリ)からローカルに
 git svn clone を使ってバージョン管理情報を
 写しとる →

    30分くらい git で好きに作業する。
 ただし先の記事を参考にいろいろ気をつける。
 あとで SVN リポジトリが壊れませんように…(-人-)ナムナム git の作業ブランチ
 →(SVN のブランチを示すブランチに)マージ 
 → push の代わりに svn dcommit を使って
  リモート(SVN)に同期する。 -------------------------*---
  15. GUI で Git Atlassian SourceTree http://www.sourcetreeapp.com/ Mac OS 10.6+, Windows

    7+ Git と Mercurial 対応 日本語化されているし、
 日本語ファイル名も問題なし 指定フォルダ配下のリポジトリを自動検出 リモートの変更を追跡・通知してくれる Mac と Windows でほぼ同じように使える ---------------------------*-
  16. GUI で Git TortoiseGit ver.1.8.6.0 http://code.google.com/p/tortoisegit/ msysgit 1.7.10+ も必要 Windows環境専用、日本語化もできる

    エクスプローラから直接、
 右クリック(コンテキストメニュー)で操作 msysgit 1.7.10(2012年リリース)から
 Unicode 対応され、日本語ファイル名も
 問題なし(Mac環境との共同開発も大丈夫) TortoiseSVN を使っていれば学習コスト低? ----------------------------*